下载地址: https://pan.baidu.com/s/1qYvRDFY 热备份工具,备份不锁表。 备份时只备份表中记录,不备份表结构 增量备份时,须要先彻底备份,在增量备份 yum install -y percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm [root@localhost opt]# rpm -ql percona-xtrabackup /usr/bin/innobackupex #支持myisam引擎锁表备份 /usr/bin/innobackupex-1.5.1 #支持myisam引擎锁表备份 /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup #5.1版本用这个 /usr/bin/xtrabackup_55 #给5.5版本用的备份脚本 /usr/bin/xtrabackup_56 #给5.6版本及以上的版本用的 /usr/share/doc/percona-xtrabackup-2.1.6 /usr/share/doc/percona-xtrabackup-2.1.6/COPYING /usr/bin/xtrabackup_56 的用法 --backup 备份数据 --target-dir=目录名 备份文件存储的位置(就是你把备份的数据存放哪里) --datadir=/usr/local/mysql/ 数据库目录 --prepare 准备恢复数据 --incremental-basedir=目录名 增量备份时,指定参考的完整备份路径(增量备份的时候用的参数) --incrementar-dir=目录名 准备恢复目录时,指定增量备份的据经(把增量备份的数据还原的时候用的参数) 例题: 备份数据(在使用增量备份前,首先要来一次完整备份) 第一次完整备份(备份到/mydata下) [root@localhostopt]#xtrabackup_56 --backup \ --target-dir=/mydata/ \ --datadir=/usr/local/mysql/data 第一次增量备份(把增量备份的数据备份到/new1) [root@localhostopt]# xtrabackup_56 --backup \ --target-dir=/new1/ \ --datadir=/usr/local/mysql/data \ --incremental-basedir=/mydata/ 第二次增量备份把增量备份的数据备份到/new2) [root@localhost opt]# xtrabackup_56 --backup --target-dir=/new2/ --datadir=/usr/local/mysql/data --incremental --basedir/new1/ 数据恢复(我这里的库表操做是db5.liuwenzhi。但愿下面出现了db5看得懂) 先恢复第一次完整备份的数据 模拟数据丢失 先备份一下: [root@localhost opt]#xtrabackup_56 --prepare --datadir=/usr/local/mysql/data/ --target-dir=/alldir/</p><p> mysql> use db5; mysql> delete from liuwenzhi; 拷贝ibd文件到/usr/local/mysql/data/db5/覆盖 [root@localhost opt]# cp /alldir/db5/liuwenzhi.ibd /usr/local/mysql/data/db5</p><p> 重启服务 [root@localhost opt]# /etc/init.d/mysqld restart 查看恢复内容(恢复到第一次完整备份的那里) 查看lsn的位置量 [root@localhost opt]# cat /alldir/xtrabackup_checkpoints backup_type = full-prepared from_lsn = 0 to_lsn = 1997713 last_lsn = 1997713 compact = 0 mysql> select * from liuwenzhi; 再恢复第二次增量备份的数据 [root@localhost opt]# xtrabackup_56 --prepare --datadir=/usr/local/mysql/data/ --target-dir=/alldir/ --incremental-dir=/new1/ 在拷贝ibd文件到/usr/local/mysql/data/db5/覆盖 [root@localhost opt]# select * from liuwenzhi; 查看lsn的位置量已更改 [root@localhost opt]# cat /alldir/xtrabackup_checkpoints backup_type = full-prepared from_lsn = 0 to_lsn = 2000761 last_lsn = 200076 compact = 0 第二次恢复同第一次操做同样 每次增量还原后查看cat /alldir/xtrabackup_checkpoints的lsn位置变量是否是变了 最后注意的地方就是: 在还原的时候是要按你每次备份的顺序还原。 如:增量备份1,2,3次。 还原的时候还原第三次的时候,必定是要第二次也要还原的。 这个备份就是靠lsn位的。lsn位有点像mysql的binlog日志所记录的信息差很少,它也有一个标记的位置。 也能够使用binlog日志备份,时间,或者位置变量这两种方法吧。这个不太清除。</p>