Club数据库基于时间点单表恢复案例
admin
2023-05-29 09:41:00
0次

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前一条sql的log_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.恢复完毕

 

 

 


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...