实验内容
时间 数据库.表 表内容(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
- 停服务
- 清环境
- 启服务
- 导入全备份数据
mysql -uroot -ppassword < /tmp/mysql.all.sql
- 导入增量备份数据(重演日志)
a.确认日志文件和MASTER_LOG_POS的相关信息
sed -n ‘22p‘ /tmp/mysql.all.sql (mariadb5.5固定存放位置)
b.显示结果:
[[email protected] ~]# 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
- 测试