MySQL使用binlog日志做数据恢复

需求背景

        数据库误操作(删除/更新)恢复。

思路

        利用MySQL binlog来恢复指定时间范围的数据,一般来说生产环境有定期备份数据库,先用备份数据库恢复到相近的时间节点,再用binlog恢复备份时间点到故障发生的时间点这段时间的数据。

步骤

        开启binlog

        创建新数据表(数据库)

        插入测试数据并备份数据库

        插入测试数据

        清空表(模拟数据库误操作)

        利用相近备份数据恢复大部分数据

        利用biglog恢复备份时间点到故障发生时间点的数据

开启binlog

        登陆mysql,检查是否开启binlog, 如果是log_bin对应value是off 就说明没有开启

        

       开启binlog只需要在my.cnf中增加如下配置

        

        特别说明:mysql-bin生成文件的前缀,错误会启动不了mysql,不能只写路径不写前缀

创建新数据表(数据库)

        用navicat在已有的数据库(study)创建了一个表(bin_log_test)

        

插入测试数据并备份数据库

        利用navicat新增两条数据

        

        备份数据库命令:

        mysqldump -uroot -p123789jt study bin_log_test > /usr/2021-08-14-study-binlogtest;

插入测试数据

        

清空表(模拟数据库误操作) 

        

利用相近备份数据恢复大部分数据     

        mysql -uroot -p123789jt study < /usr/2021-08-14-study-binlogtest

利用biglog恢复备份时间点到故障发生时间点的数据

        命令(mysqlbinlog 这个命令在安装目录的bin文件夹):mysqlbinlog --start-position=0 --stop-position=469 /var/lib/mysql/mysql-bin.000002 | mysql -uroot -p123789jt

        特别说明:这里先用mysqlbinlog 命令查看binlog内容,确定需要恢复的数据在那个范围,再用-start-position  --stop-position 来指定范围,这样就可以恢复想恢复的数据啦

        补充:可以通过时间恢复,利用start-datetime/stop-datetime参数指定时间范围

总结:

        以上步骤就是学习MySQL利用binlog来恢复数据的全过程,供大家入门学习参考。

        开启binlog详细步骤参考链接:https://blog.csdn.net/king_kgh/article/details/74800513?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.base

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值