我的一位客户的 MySQL 数据库最近出现了一个奇怪的事件。几天前,一个数据库突然“回到了过去”。所有数据都恢复到了几个月前的状态。甚至大多数 .MYD 和 .MYI 文件的时间戳都是 11 月份的。
幸运的是,该服务器尚未投入生产,但我们需要了解它是如何发生的,以免再次发生。
我不是 MySQL 专家,但我无法想象除了从备份中恢复之外,还有什么情况会导致数据库倒退。这里可能发生了什么?我应该在哪里寻找线索?
(服务器是 FreeBSD 6.4)
答案1
日志中没有显示任何被认为发生逆转的时间段内的内容?
没有人运行过删除特定日期之后的记录的操作吗?
您是否正在查看来自数据库或应用程序的原始数据,这些数据可能会过滤输出,因此您不会看到某个日期之后的内容?
有没有从备份运行中恢复数据,有人在玩文件系统快照吗?
是否有任何脚本在运行备份,但可能出现问题?
还有谁有权访问该目录并有权复制/修改程序?您说这不是生产数据库,那么开发人员是否在玩弄服务器,并有权访问版本控制,从而对文件进行某些操作?
出现文件系统错误?是只是受影响的数据库文件,没有其他系统或用户数据?日志文件?
答案2
# cat /etc/fstab
# mount
也许 mysql 数据库与例如 /var 一起被复制到单独的磁盘然后安装在现有的 /var(/db(/mysql)) 的顶部?
答案3
到目前为止,据我所知,只有一件事可以实现这一点。
您的客户端必须安装了 2 个 mysql 服务器实例。检查 swlist。服务器必须关闭..检查关机日志。启动时,web 服务器启动了另一个 mysql。
我是一名 HPUX + PA/IA 硬件专家,业余爱好从事 Web 开发人员。这是对我有帮助的研究的核心。
好消息:数据尚未丢失;)