一.安装Percona-详解
xbk 在innodb表备份恢复的流程
a.xbk备份执行的瞬间,立即触发ckpt,已提交的数据脏页,从内存刷写到磁盘,并记录此时的LSN号
b.备份时,会将备份过程中产生的redo和undo一起拷贝走,
c.在恢复之前,模拟Innodb“自动故障恢复”的过程,将redo(前滚)与undo(回滚)进行应用
d.恢复过程是cp 备份到元数据目录下
1.下载依赖
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev
2.yum下载软件包的时候自动下载依赖(此时可以忽略第一步)
yum install -y percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm
(自动解决依赖,前提有软件包)
3.数据库全备
innobackupex --user=root --password=123456 --no-timestamp /data/backup/`(date +%F)` &>/tmp/xbl.log
(--no--timestamp 不自动设置时间目录)
4.此时进行演练,把数据库内容清空(恢复时候必须保证目录是空的)
5.恢复前进行,自动故障恢复 redo和undo
XBK表恢复流程第三部(上翻)
innobackupex --apply-log /data/backup/2019-05-08
6.进行恢复,恢复完必须重新授权
innobackupex --copy-back /data/backup/2019-05-08/
chown -R mysql.mysql /data/mysql
二.安装Percona-详解
1.准备工作!
a.增量(建表t1,随便写内容)
innobackupex --user=root --password=123456 --no-timestamp --incremental /data/backup/inc1 --incremental-basedir=/data/backup/full &>/tmp/inc1.log
b.增量(建表t2,随便写内容)
innobackupex --user=root --password=123456 --no-timestamp --incremental /data/backup/inc2 --incremental-basedir=/data/backup/inc1 &>/tmp/inc2.log
c.增量(建表t3,随便写内容)
2.恢复方案:
a.增量不能单独恢复
b.增量必须合并到到全备中(按照顺序)
c.所有备份都必须要apply-log(CSR恢复)
d.部分备份至需redo不需undo(--redo-only)
(除最后一个增量不用加,剩下的要加,防止回滚后号码接不上)
3.开始恢复:
1.原全备整理(--redo-only防止回滚)
innobackupex --apply-log --redo-only /data/backup/full
2.合并和整理
innobackupex --apply-log --redo-only --incremental-dir=/data/backup/inc1 /data/backup/full
3.验证是否合并成功
cat full/xtrabackup_checkpoints
cat inc1/xtrabackup_checkpoints
4.合并最后一个增量不需要--redo-only
innobackupex --apply-log --incremental-dir=/data/backup/inc2 /data/backup/full
5.终极整理
innobackupex --apply-log /data/backup/full/
6.二进制日志截取
a.截取起点
cat /data/backup/inc2/xtrabackup_binlog_info
b.截取终点
show binlog exents in 'mysql-bin.000001'
c.将截取的二进制文件导入文件中
mysqlbinlog --skip-gtids --include-gtids='498bdca1-713b-11e9-8563-000c29597ec9:6-7' /data/binlog/mysql-bin.000001 >/data/backup/bin.sql
d.mysql中 source /data/backup/bin.sql
增量略有麻烦,很多公司都是全备+二进制日志