温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Club数据库基于时间点单表恢复案例

发布时间:2020-07-12 12:39:03 来源:网络 阅读:420 作者:524683249 栏目:数据库

Club数据库基于时间点单表恢复案例

发现问题:

DBA于2016-05-20发现club数据库出现sql注入现象,如下图

Club数据库基于时间点单表恢复案例

此时数据库中数据已经被全部替换了,具体数据如下

Club数据库基于时间点单表恢复案例

Club数据库基于时间点单表恢复案例

可以看到nickname,realname都已经被修改,这是业务已经收到影响需要对数据进行恢复。

解决方案:

1、找到当天备份,并将备份文件直接启动。

启动时注意调一下配置文件中的server-id,避免与线上从库冲突

2、通过mysqlbinlog工具解析备份时间到当前时间的所有binlog日志并追加到一个临时文件中

mysqlbinlog -d club --start-datetime '2016-05-20 00:00:00' mysql-bin.000161 > /tmp/liuyaxin.sql

mysqlbinlog -d club --start-datetime '2016-05-20 00:00:00' mysql-bin.000162 >> /tmp/liuyaxin.sql

3、过滤临时文件中对该表的操作,找到导致问题的sql语句,并记录当时问题sql前一条sqllog_pos点,binlog_file信息没有记录,需要根据sql执行时间点去确认。

grep -B 2 user_doctor_new liuyaxin.sql | grep -A 5 -B 6  qwqrnore | more

导致问题sql及时间点:

Club数据库基于时间点单表恢复案例

sql没有条件限制导致全表数据被恶意修改。

导致问题前一条sql及时间点:

Club数据库基于时间点单表恢复案例

4.在利用备份启动的实例上通过指定binlog_pos点结束位置的方式开启中从同步

start slave until MASTER_LOG_FILE='mysql-bin.000162',MASTER_LOG_POS=101655506;

等待数据同步,同步到指定pos点时 sql线程会自动断掉 

localhost.club>show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: ****

Master_User: *****

Master_Port: ****

Connect_Retry: 60

Master_Log_File: mysql-bin.000164

Read_Master_Log_Pos: 107671841

Relay_Log_File: relay-bin.000004

Relay_Log_Pos: 101704628

Relay_Master_Log_File: mysql-bin.000162

Slave_IO_Running: Yes

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 101655506

Relay_Log_Space: 2255157326

Until_Condition: Master

Until_Log_File: mysql-bin.000162

Until_Log_Pos: 101655506

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

根据标红字段可以看出数据已经同步到我们指定的位置了。

5.将同步完成后的要恢复的表dump出来,并恢复到线上库

Club数据库基于时间点单表恢复案例

6.校验数据

Club数据库基于时间点单表恢复案例

Club数据库基于时间点单表恢复案例

名字已经变回来了

9.恢复完毕

 

 

 


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI