大牛请帮忙,mysql 更新记录后,其中3条数据隔了6小时候,自动消失。

cowboy_ls 2016-07-07 10:09:50
搞程序10年了。第一次遇到这种情况,蒙了

更新的数据,其中一部分间隔6小时之后,竟然没了。

环境
阿里云
系统 centos 6.5 64位
数据库 mysql 5.6.24 64位
表引擎 myisam

情况是这样的。运营人员在后台更新了用户的ID 。期间一共更新了10多个。其中有3个,第三天的时候发现没了。
用户数据一共3张表,没有主外键关联也没有触发器,三张表的用户数据同时消失。用户的登陆记录、邮件记录,物品记录,都存在。
仔细核查。对用户最后一个操作在添加后的6消失内。以此证明用户在更新后,6小时内是存在数据库了。

初步判断,1、是否业务逻辑有删除。2、是否有sql注入删除

查询mysql 的日志。 对该用户的操作日志都能找出,但是找不到delete语句。 以此排除以上2种问题。

难道会莫名随机消失吗。10多条更新。都是单个单个用户更新。每次更新用户的3张表。如果有问题。为什么只消失了其中3条?
还想过是否阿里云回档问题。判断应该不会,如果回档,应该掉一个时间段的数据,但是。此时间段的其他数据都还在。

大牛们遇到这种情况没。能否解答,谢谢!
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2016-07-07
  • 打赏
  • 举报
回复
赶紧加个触发器, 数据有删除操作的直接插入到另外一张表B去, 而且表B多一个 execTime , 也就是执行时间。 这样你至少: 1. 不会丢数据; 2. 判断到底什么时候出了类似的问题。
cowboy_ls 2016-07-07
  • 打赏
  • 举报
回复
引用 4 楼 yupeigu 的回复:
6个小时后,数据会消失,这个不太可能。 肯定是有人,或者触发了程序,把数据删掉或者改掉了,至于日志,就像楼上说的,可能没有记录。 另外,你说的 更新id,会不会是原来的数据在更新之后,又被改掉了呢,只是 看上去消失了,单其实还在。
第二条。数据库没触发器。程序的话。应该是不太可能。程序走的都是binlog 还有在分析器里面执行的语句,都会走binlog。对于SUPER这个。。。要开general_log 这个要核算一下空间。然后等待重现。。。 第三条。查过了。不可能,因为用户昵称和用户名都没更新过的。如果有更新到别的,那么binlog里面也是会有记录的。程序所有的操作都会记录binlog
cowboy_ls 2016-07-07
  • 打赏
  • 举报
回复
引用 3 楼 zjcxc 的回复:
SUPPER 的操作可以不记 BINLOG 的,所以不排除人为操作导致 如果是复制导致的,则默认复制操作也是不记 binlog 的 建议开 general_log 看下 sql 操作
现在数据库没有进行复制 每天会产生2G多的binlog数据 不知道开general_log 每天会产生多少数据?好计算空间
LongRui888 2016-07-07
  • 打赏
  • 举报
回复
6个小时后,数据会消失,这个不太可能。 肯定是有人,或者触发了程序,把数据删掉或者改掉了,至于日志,就像楼上说的,可能没有记录。 另外,你说的 更新id,会不会是原来的数据在更新之后,又被改掉了呢,只是 看上去消失了,单其实还在。
zjcxc 2016-07-07
  • 打赏
  • 举报
回复
SUPPER 的操作可以不记 BINLOG 的,所以不排除人为操作导致 如果是复制导致的,则默认复制操作也是不记 binlog 的 建议开 general_log 看下 sql 操作
cowboy_ls 2016-07-07
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
没开启mysqlbinlog吗 解析出来分析
就是看的binlog 对这3个用户的所有MYSQL语句。更新,查询。还有日志记录,这些SQL操作都查的到,就是没有删除记录。 关键问题。3张表没有建立关联,为什么3张表的数据同时都没有了 主表的ID是自增长。但是程序逻辑直接插入的ID。也看了很多资料MYISAM引擎,是表锁定。这个更新自动增长ID是没问题的啊。 也不会影响其他3张表啊。而且,更新后,已知6个小时,数据是存在的。因为有对用户的操作。 把我搞蒙了
rucypli 2016-07-07
  • 打赏
  • 举报
回复
没开启mysqlbinlog吗 解析出来分析
码无边 2016-07-07
  • 打赏
  • 举报
回复
肯定是有什么脚本或者sql执行了
rucypli 2016-07-07
  • 打赏
  • 举报
回复
建议还是好好分析binglog的操作记录 这个是记录数据库所有更新操作的 你的binlog是如何分析查找的 另外看看数据库是否重启过

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧