目录
开始场景模拟:
原始数据:test库只有test表
开始全量备份:
开始模拟正常工作:
模拟一临时工不小心删除了我们的数据库test【不只是test表】
第一步:开始恢复今天工作之前的数据
第二步:刷新binlog日志记录文件,让之后的数据操作写入到新的日志文件
第三步:开始恢复今天工作一天的数据
当然除了全恢复,我们还可以只回复一部分数据:
重新删掉数据库:
编辑然后我们将数据恢复到添加完数据的模样,不要修改的数据:
修改完成!
开始场景模拟:
原始数据:test库只有test表
开始全量备份:
备份后刷新的日志:
开始模拟正常工作:
插入数据:
修改数据:【修改了两条】
至此模拟工作结束。
模拟一临时工不小心删除了我们的数据库test【不只是test表】
第一步:开始恢复今天工作之前的数据
数据已恢复到早晨开工的模样:
第二步:刷新binlog日志记录文件,让之后的数据操作写入到新的日志文件
第三步:开始恢复今天工作一天的数据
看刚刚的musql-bin.000004文件,发现是下图中黄色方框导致的数据删除
所以我们用重定向这个文件,然后将那句命令删除,开始恢复今天的数据
恢复今天的数据:
发现今天一天的数据终于恢复了!
当然除了全恢复,我们还可以只回复一部分数据:
重新删掉数据库:
然后恢复到今天开始工作之前的数据:
然后我们将数据恢复到添加完数据的模样,不要修改的数据:
开始修改:
mysqlbinlog --start-position=445 --stop-position=579 --database=test musql-bin.000004 | mysql -uroot -proot123 -v
修改完成!
#当然也可以用下面的命令按时间恢复
mysqlbinlog --start-datetime="起始时间" --stop-datetime="终止时间" --database=数据库名称 /var/lib/mysql/musql-bin.000004 | /usr/bin/mysql -u用户 -p密码 -v