xtrbackup备份所有库(全备与增量)

安装及参数说明请参考

http://www.jcwit.com/2018/07/20/xtrabackup单库(全增)备份及恢复/

1.全量备份

  1.创建需要备份的用户并授权

mysql> CREATE USER ’bkpuser’@’localhost’ IDENTIFIED BY ’s3cret’;

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ’bkpuser’;

mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO ’bkpuser’@’localhost’;

mysql> FLUSH PRIVILEGES;

2.备份数据库

innobackupex --defaults-file=/etc/my.cnf --user=DBUSER --password=DBUSERPASS  /path/to/BACKUP-DIR/ 
备份自动压缩 
# innobackupex --stream=tar  /backup gzip > /backup/`date +%F_%H-%M-%S`.tar.gz 
甚至也可以使用类似如下命令将数据备份至其它服务器: 
# innobackupex --stream=tar  /backup ssh user@www.test.com  "cat -  > /backups/`date +%F_%H-%M-%S`.tar"  

在备份的同时,innobackupex还会在备份目录中创建如下文件:

(1)xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。

(2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

(3)xtrabackup_binlog_pos_innodb —— 二进制日志文件及用于InnoDB或XtraDB表的二进制日志文件的当前position。

(4)xtrabackup_binary —— 备份中用到的xtrabackup的可执行文件;

(5)backup-my.cnf —— 备份命令用到的配置选项信息;

在使用innobackupex进行备份时,还可以使用–no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

3.还原数据库 还原数据库,首先先执行事务整理,还原的时候无需启动mysql

innobackupex --apply-log  /path/to/BACKUP-DIR innobackupex --copy-back   /path/to/BACKUP-DIR/

2增量备份

  第一次增量备份

innobackupex  innobackupex --incremental 备份路径    --incremental-basedir=上次全量备份路径

第二次增量备份
innobackupex  innobackupex --incremental   备份路径    --incremental-basedir=上次增量备份路径  

还原操作
# innobackupex --apply-log --redo-only  全量备份路径 
接着执行: 
# innobackupex --apply-log --redo-only 全量备份路径  --incremental-dir=第一次增量备份路径 而后是第二个增量: 
# innobackupex --apply-log --redo-only 全量备份路径 --incremental-dir=第二次增量备份路径 
最后执行 innobackupex --copy-back   全量备份路径


xtrbackup备份所有库(全备与增量)
http://www.jcwit.com/article/195/
作者
Carlos
发布于
2018年7月20日
许可协议