文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

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.恢复完毕

 

 

 


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯