实验内容

时间    数据库.表    表内容(id)    操作内容

8点    db1.t1      1,2,3         进行全备份

9点    db1.t1      4,5(新增加)    增加数据   

10点    db1.t1     delete db1     删除db1


11点发现数据库内容有误,要求回复正常的数据

8点数据全备份

mysqldump -uroot -ppassword --all-databases --single-transaction --master-data=2 > /tmp/mysql.all.sql

命令参数说明:

    --all-databases = -A 备份所有的库

    --single-transaction 可以实现数据一致,服务可用

    --flush-logs 全备份后生成新的日志,然后对数据库的操作记录会存在新的日志文件中

    --master-data=2 记录日志的文件名和此日志中起始的position号.

9点数据增加

instert into db1.t1 (4),(5);

10点数据删除

delete db1

  1. 停服务

  2. 清环境

  3. 启服务

  4. 导入全备份数据

    mysql -uroot -ppassword < /tmp/mysql.all.sql

  5. 导入增量备份数据(重演日志)

    a.确认日志文件和MASTER_LOG_POS的相关信息

    sed -n '22p' /tmp/mysql.all.sql  (mariadb5.5固定存放位置)

    b.显示结果:

    [root@servera ~]# sed -n '22p' /tmp/mysql.all.sql

    -- CHANGE MASTER TO MASTER_LOG_FILE='servera.000006', MASTER_LOG_POS=245;

    c.重演日志

    mysqlbinlog /var/lib/mysql-log/servera.000006 --start-position=245 --stop-position=672 |mysql

  6. 测试