“谁动了我的数据表”,Table doesn't exist问题排查实践

举报
云技术搬运工 发表于 2021/04/21 11:00:31 2021/04/21
【摘要】 在数据库使用过程中,你大概率会遇到‘自己需要的数据找不到’的情况,提示你,甚至提示你整个表都不存在Table doesn't exist。首要的当然是从备份文件中将数据进行恢复,如表级时间点恢复或实例时间点恢复,其次我们还要找出‘罪魁祸首’,究竟是谁动了我的数据?今天我们通过一个简单的实际案例,来定位到这个误操作的人员。


在数据库使用过程中,你大概率会遇到‘自己需要的数据找不到’的情况,提示你,甚至提示你整个表都不存在Table doesn't exist。首要的当然是从备份文件中将数据进行恢复,如表级时间点恢复或实例时间点恢复,其次我们还要找出‘罪魁祸首’,究竟是谁动了我的数据?今天我们通过一个简单的实际案例,来定位到这个误操作的人员。

问题现象

之前用的好好的,突然在今天下午出现问题,一张重要的表不见了。

1.png

2.png

处理思路

1、对数据库任何变动(不含不改变数据库的操作,如show、select)都会在binlog中记录,可以通过binlog来定位‘误操作’具体的时间。

2、配合数据库审计日志(默认是关闭的,开启会对性能有些许影响),就可以定位到误操作人员的IP

3、数据库支持多用户并行操作,DBA要事前做好权限分配和控制,以防用户操作到不应该操作的数据。

 

分析过程

1、华为云数据管理服务DAS中提供云DBA服务,里面有包含性能、锁&事务、空间、参数、binlog等多种常用运维方法。

3.png

2、根据问题出现时间,解析binlog日志,查找可疑的操作

4.png3、点击‘查看DDL语句’,可以看到,在2021/4/2 14:50:52t_employee表确实被drop了。

5.png

4、进入云数据库RDS,单击实例名称,进入实例详情页

6.png

5、实例详情页,左侧的‘SQL审计’,找到对应的时间段,下载审计日志

7.png6、打开审计日志,查找对应的操作,即可找到操作的IP

8.png这个 100.125.xxx.xxx DAS的地址,说明用户是通过DAS界面进行的drop操作。


案例总结

有用户通过DAS的地址Drop了这个表,如果要找回这个数据,可以通过恢复备份的方法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。