• xtrbackup备份,及恢复数据


    模拟定时任务周日备份数据,周一数据变化,周一crontab定时任务增量备份,周二数据变化,周二crontabl增量备份,然后有人删库,我们进行恢复数据

    1. 模拟crontab 里的定时任务周日全备

    [root@db01 b]#innobackupex --user=root --password=oldboy123 --no-timestamp /b/full

    mysql> show master status;

    +------------------+----------+--------------+------------------+-------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

    +------------------+----------+--------------+------------------+-------------------+

    | mysql-bin.000028 | 55042 | | | |

    +------------------+----------+--------------+------------------+-------------------+

    1. 模拟周一数据变化

    mysql> create table city1 select * from city;

    mysql> show master status;

    +------------------+----------+--------------+------------------+-------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

    +------------------+----------+--------------+------------------+-------------------+

    | mysql-bin.000028 | 188930 | | | |

    +------------------+----------+--------------+------------------+-------------------+

    1. 执行crontabl周一增量备份

    [root@db01 b]#innobackupex --user=root --password=oldboy123 --no-timestamp --incremental --incremental-basedir=/b/full /b/inc1

    [root@db01 b]#cat /b/full/xtrabackup_checkpoints /b/inc1/xtrabackup_checkpoints

    1. 再次数据变化

    mysql> create table world.city2 select * from world.city;

    1. 模拟周二增量备份

    [root@db01 backup]#innobackupex --user=root --password=oldboy123 --no-timestamp --incremental --incremental-basedir=/b/周一增量路径 /b/周二增量路径

    [root@db01 backup]#innobackupex --user=root --password=oldboy123 --no-timestamp --incremental --incremental-basedir=/b/inc1 /b/inc2

    1. 全备,第一次增量,和第二次增量 3个点都接上才能恢复数据

    1. 删除mysqldata目录

    [root@db01 ~]#rm -fr /application/mysql/data/*

    [root@db01 ~]#pkill mysql

    1. 数据进行恢复

    2. 恢复数据注意事项:

    1 增量备份是不能直接恢复使用,必须要把所有增量合并到同一个全备中,最后进行一次恢复,会读ch文件自动的接到一起, 才能恢复增量(不像别的产品,恢复增量要依次恢复增量),

    1. 在合并过程中,顺便进行备份的准备,(apply-log),在准备过程中,只有最后一次合并增量redo和undo都应用,中间合并过程只应用redo,只进行前滚,不做回滚,防止lsn号接不上
    2. 全备准备

    --apply-log 回滚和前滚

    -- redo-only 之前滚

    (只对redo进行应用,就是前滚,因为是热备,有的数据没有提交,innobackup把redo一并备份了.所以要做redo前滚)

    [root@db01 ~]#innobackupex --apply-log --redo-only /backup/full

    1. 把第一次增量合并到全备

    合并inc1合并到full中,并且apply-log,只应用redo,不应用undo

    --incremental-dir 指定要合并的增量备份路径

    [root@db01 b]#innobackupex --user=root --password=oldboy123 --apply-log --redo-only --incremental-dir=/b/inc1 /b/full

        

    1. 第二次增量备份合并到全备

    合并inc2合并到full中,redo和undo都应用

    [root@db01 b]#innobackupex --user=root --password=oldboy123 --apply-log --incremental-dir=/b/inc2 /b/full

    1. 最后一次进行备份准备

    整体full执行apply-log,redo和undo都应用

    [root@db01 b]#innobackupex --apply-log /b/full

    1. 授权重启

    [root@db01 /]#chown - R mysql.mysql /application/mysql/data/

    [root@db01 /]#/etc/init.d/mysqld start

  • 相关阅读:
    根据科目计算父科目ID,并递归累计求父科目的金额
    xshell连接中标麒麟
    查看linux版本
    虚拟机的Vmtools
    apt-get和yum
    1264
    使用navicat的坑
    Qt bug
    模板函数举例
    头文件里声明和定义,Qt编译不过问题
  • 原文地址:https://www.cnblogs.com/john5yang/p/10516934.html
Copyright © 2020-2023  润新知