备份原理:直接拷贝文件 innobackupex --version #查看当前XBK的版本号 into outfile '路径/指定的文件' #将sql语句执行的结果导出到指定的文件中 XBK备份核心理念 1、针对非InnoDB,进行锁表备份,copy所有的非innodb表文件。 2、针对InnoDB表,立即触发CKPT,copy所有InnoDB表相关的文件(ibdatal,ibd,frm),并且将备份过程中产生的新的数据变化的部分redo一起备份走 3、在恢复时,xbk会调用Innodb引擎的CSR过程,将数据和redo的LSN最平,然后进行一致性恢复。 备份产生的文件介绍 (1)xtrabackup_binlog_info #记录备份时刻的二进制日志信息,可以作为binlog截取的起点 (2)xtrabackup_checkpoints 备份过程 1、定期全备 innobackupex --user=root --password=123 --no-timestamp /backup/full 2、增量备份(基于全备) innobackupex --user=root --password=123 --no-timestamp --incremental --incremental-basedir=/backup/full /backup/incl 说明: --no-timestamp --incremental #开关 --incremental-basedir=/backup/full #基于哪个备份进行增量 /backup/incl #增量备份的位置
恢复思路?
1、停业务,挂维护页,避免数据的二次伤害。 2、查找可用备份:full+inc1+inc2 3、inc2 到 故障时间点的binlog 4、恢复全备+增量+binlog 5、验证数据,开启业务 处理结果:经过20分钟的处理,最终业务恢复正常。 恢复前的准备 (1)整理full innobackupex --apply-log --redo-only /backup/full --redo-only #这个选项 在 整理全备和所有增量合并时 除了 最后一次增量 用 (2)合并 inc1 到 full ,并且整理 innobackupex --apply-log --redo-only --incremental-dir=/backup/inc1 /backup/full cat /backup/full/xtrabackup_checkpoints cat /backup/inc1/xtrabackup_checkpoints #XBK备份的信息文件,可用对比 (3)合并 inc2 到 full ,并且整理 innobackupex --apply-log --incremental-dir=/backup/inc2 /backup/full (4)最后一次整理full innobackupex --apply-log /backup/full 截取二进制日志 cat /backup/inc2/xtrabackup_binlog_info #找到文件里的起点信息 起点:mysql-bin.000031 1997 aa648280-a6a6-11e9-949f-000c294a1b3b:1-17, e16db3fd-a6e8-11e9-aee9-000c294a1b3b:1-9; mysqlbinlog /data/binlog/mysql-bin.000031 | grep 'SET' 终点:SET @@SESSION.GTID_NEXT='e16db3fd-a6e8-11e9-aee9-000c294a1b3b:12'/*!*/; 截取 mysqlbinlog --skip-gtids --include-gtid='e16db3fd-a6e8-11e9-aee9-000c294a1b3b:10-12' /data/binlog/mysql-bin.000031 >/backup/binlog.sql 恢复备份数据 cp -a /backup/full/* /data/mysql/data chown -R mysql. /data/ /etc/init.d/mysqld start mysql>set sql_log_bin=0 mysql>source /backup/binlog.sql 验证数据 mysql>select * from full.t1; mysql>select * from inc1.t1; mysql>select * from inc2.t1; 单表恢复案例 误删了一张10M的表。而备份有500G。如何快速恢复误删除表? 提示: drop table city; create table city like city_bck; alter table city discard tablespace; cp /backup/full/world/city.ibd /application/mysqldata/world/ chown -R mysql.mysql /application/mysql/data/world/city.ibd alter table city import tablespace 标签:binlog,full,--,备份,XBK,mysql,backup,物理 From: https://www.cnblogs.com/lanchang/p/17782341.html