Mysql数据恢复
Mysql的,数据恢复,主要为了应对在线上mysql执行update/delete错误的操作无法撤回情况,主从同步的数据库也没办法的,在主库上的操作会很快同步到从库,从库的备份可能来不及,所以要有另一种撤回策略。
错误的情况基本是update和delete情况
错误的表:实时数据变更多与少的情况
一. 实时数据变更比较少的表
举例:反馈表,这个可能写很少,变更更少,不小心操作失误,
从上一次备份都可以恢复表数据,再次进行正确的update操作。
数据没有丢失可以通过sql语句进行类似回滚,修正数据的操作,推荐使用sql操作进行撤回,记得提前备份这个表。
二. 实时数据变更很大的表
参考链接:http://imysql.com/2017/02/26/...
根据ORCALE的flashback功能,国内一些Mysql专家实现了mysql的flashback
mysqlbinlog_flashback 更便重于阿里云 RDS环境的使用。
Github: https://github.com/58daojia-d...
binlog2sql 便重于通常MySQL的处理。从代码上来看,该项目更简洁一点。
Github: https://github.com/danfengcao...
其中在自己的服务器上测试了binlog2sql,只是简单的update操作失误之后的数据恢复测试,可以实现
binlog2sql常见错误是:
修改配置之后,重启mysql 服务
配置中的binlog_row_image=full这个是mysql5.6+的版本提供的特性,低版本的无法使用这个
推荐数据变更数据是:在测试服务器上进行sql操作,成功再交由DBA进行正式数据库的操作,一些很关键的表,先备份在操作。