解锁MySQL备份恢复的4种正确姿势(4)
检测并应用日志:
step 3:应用增量
step 4:物理文件复制还原
数据恢复到备份的时候:
恢复完成之后,data目录下会生成backup_variables.txt的文件(其实在备份的时候就已经有这些文件的),找到备份的时候的log position,然后从binlog恢复无备份的数据.
至此数据恢复. 大致梳理一下操作步骤,来了解一下恢复的原理: 首先检测并应用全备事务日志文件(这里是因为我备份的时候用的是backup而不是backup-and-apply-log),然后基于全备去应用增量的log.这个时候如果有多次增量备份也可以(基于LSN点向后应用). 所有的都应用完成之后就是一个可以直接cp的数据库了. 个人感觉这个工具比xtrabackup好用,但是xtrabackup是开源的,所以市场占有量才会大,才会更有名,更多人用吧. 三、mysqlhotcopy?mysqlhotcopy使用lock tables、flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能用于备份MyISAM存储引擎和ARCHIVE引擎,并且是一个服务器命令,只能运行在数据库目录所在的机器上.与mysqldump备份不同,mysqldump属于逻辑备份,备份时是执行的sql语句.使用mysqlhotcopy命令前需要要安装相应的软件依赖包. 因为这个功能很弱,我们只简单的介绍一个怎么用: 备份一个库
备份一张表
更详细的使用可以使用perldoc mysqlhotcopy查看. 四、xtrabackup/innobackupexPercona XtraBackup是一款基于MySQL的热备份的开源实用程序,它可以备份5.1到5.7版本上InnoDB,XtraDB,MyISAM存储引擎的表,Xtrabackup有两个主要的工具:xtrabackup、innobackupex . (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2)innobackupex则封装了xtrabackup,是一个脚本封装,所以能同时备份处理innodb和myisam,但在处理myisam时需要加一个读锁. 首先我们先来简单的了解一下xtrabackup是怎么工作的.xtrabackup基于innodb的crash-recovery(实例恢复)功能,先copy innodb的物理文件(这个时候数据的一致性是无法满足的),然后进行基于redo log进行恢复,达到数据的一致性. 详细的信息可以参数https://www.percona.com/doc/percona-xtrabackup/LATEST/how_xtrabackup_works.html?我就不翻译了. 我们还是简单来看一下日常工作中具体的使用: 全备:
可以先看到 在备份过程中,可以看到很多输出显示数据文件被复制,以及日志文件线程反复扫描日志文件和复制. (编辑:ASP站长网) |