MySQL增量备份与恢复

3.1 问题

具体要求如下:
备份所有数据
备份新产生的数据
删除数据
使用备份文件恢复数据

3.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:备份所有数据,在50主机执行

1)完全备份 (备份所有数据到/fullbak目录)

[root@host50 ~]# innobackupex --user root --password 123456  /fullbak --no-timestamp

步骤二:增量备份 (每次执行备份,值备份新数据,在50主机执行)

  1. 插入新记录,并做增量备份

    mysql> insert into db3.user2 values(5,“jack”);// 插入新记录,多写几条
    [root@host50 ~]# innobackupex --user root --password 123456 --incremental /new1dir --incremental-basedir=/fullbak --no-timestamp //第1次增量备份 ,数据存储目录/new1dir

  2. 插入新记录,并做增量备份

mysql> insert into db3.user2 values(6,“jack”);// 插入新记录,多写几条

[root@host50 ~]# innobackupex --user root --password 123456 --incremental /new2dir --incremental-basedir=/newdir1 --no-timestamp //第2次增量备份 ,数据存储目录/new2dir

  1. 把备份文件拷贝给目标主机51

    [root@host50 ~]# scp -r /fullbak [email protected]:/root/
    [root@host50 ~]# scp -r /new1dir/ [email protected]:/root/
    [root@host50 ~]# scp -r /new2dir/ [email protected]:/root/

步骤三:在主机51 恢复数据

  1. 停止服务,并清空数据

    [root@host51 ~]# systemctl stop mysqld
    [root@host51 ~]# rm -rf /var/lib/mysql/*

  2. 合并日志

    [root@host51 ~ ]# innobackupex --apply-log --redo-only /root/fullbak //准备恢复数据
    [root@host51 ~ ]# innobackupex --apply-log --redo-only /root/fullbak --incremental-dir=/root/new1dir //合并日志
    [root@host51 ~ ]# innobackupex --apply-log --redo-only /root/fullbak --incremental-dir=/root/new2dir //合并日志
    [root@host51 ~ ]# rm -rf /root/new2dir //恢复后,可以删除了
    [root@host51 ~ ]# rm -rf /root/new1dir //恢复后,可以删除了

  3. 恢复数据

    [root@host51 ~ ]# innobackupex --copy-back /root/fullbak //拷贝文件到数据库目录下
    [root@host51 ~ ]# chown -R mysql:mysql /var/lib/mysql //修改所有者与组用户
    [root@host51 ~ ]# systemctl start mysqld //启动服务
    [root@host51 ~ ]# mysql -uroot -p123456 //登录
    mysql> select count(*) from db3.user; //查看数据

你可能感兴趣的:(Rdbms)