innobackupex备份工具(增量备份与还原)

创建增量备份

1:首先需要创建一个完全备份

innobackupex --user=root --password=123456 /tmp/db_backup/

或者可以指定备份某一个数据库

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --database=longtao  /tmp/db_backup/

其中--defaults-file=/etc/my.cnf 是可选项,默认就是这个路径,用来获取备份和还原路径;

--database=longtao  也是可选项,用来指定还原某一个数据库,不写默认是所有数据库都备份


2. 使--incremental创建增量备份

第一次增量备份:

innobackupex --user=root --password=123456 --incremental /增量备份第一次路径 --incremental-basedir=全备路径 

第二次增量备份

innobackupex --user=root --password=123456 --incremental /tmp/db_backup/ --incremental-basedir=/增量第一次备份路径

第三次增量备份

innobackupex --user=root --password=123456 --incremental /tmp/db_backup/ --incremental-basedir=/增量第二次备份路径

后面的以此类推。

2、增量备份创建的替代方法

innobackupex --user=root --password=123456 --incremental /tmp/db_backup/ --incremental-lsn=3038507  

#从这个编号点开始备份,编号来自于上一次增量备份结束位置:如下:

[root@CentOS7-63 2021-06-30_19-22-37]# cat  xtrabackup_checkpoints

backup_type = incremental

from_lsn = 3034128

to_lsn = 3038507

last_lsn = 3038516

compact = 0

recover_binlog_info = 0

 

注意查看:to_lsn = 3038507  这个就是了!

注意:xtrabackup只会影响xtradb或者innodb的表,其他引擎的表在增量备份的时候只会复制整个文件进行全备,不会差异。

 


 还原增量备份

增量备份的恢复比全备要复杂一点,第一步是在所有备份目录下重做已提交的日志,如:

innobackupex --apply-log --redo-only BASE-DIR 
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1 
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-2

注意:如果仅有一份增量备份,第2条语句忽然

其中BASE-DIR是指全备目录,

INCREMENTAL-DIR-1是指第一次的增量备份,

INCREMENTAL-DIR-2是指第二次的增量备份,以此类推。

以上语句执行成功之后,最终数据在BASE-DIR(即全备目录)下。

 

第一步完成之后,我们开始第二步:回滚未完成的日志:

innobackupex --apply-log BASE-DIR

上面执行完之后,BASE-DIR里的备份文件已完全准备就绪,

 建议删除清空MySQL的datadir目录再恢复

最后一步:第三步就是拷贝恢复:

innobackupex --copy-back BASE-DIR

恢复mysql权限 

chown –R mysql.mysql /var/lib/mysql/

最后启动

systemctl start mysqld

版权声明:
作者:WaterBear
链接:https://l-t.top/1756.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>