仅使用 bin-log 文件恢复 MySQL 数据库

6 mysql database

这是灾难:

我们正在我们公司使用用于测试管理的 Web 应用程序:TestLink。一个团队为此已经工作了 1 个多月。昨天,另一个团队也想开始使用 testLink,所以我被要求为他们安装它。

安装是在运行第一个 TestLink 的同一台服务器上进行的,我使用的是运行 testLink 的WampServer.2.0,所以我再次开始安装它,不幸的是在同一个 WampServer 上......我有点累了,而且我没有在安装中提到我给第二个 TestLink 与第一个相同的数据库名称..安装成功......但是等等!第一个数据库中的所有数据都丢失了!!被一个空的新数据库覆盖..!我觉得肯定有人要杀了我!

所以我开始使用谷歌搜索,但是自从安装第一个 TestLink 以来没有进行数据库备份..我真的觉得我没有解决方案..我尝试运行软件来备份被覆盖和意外删除的文件,这没有帮助..课程...

我在这个博客中发现了一个关于MySQL 二进制日志的故事,但看起来至少有一个备份来恢复丢失的数据是必要的。在我的my.ini文件的配置中,该log-bin=mysql-bin行没有被注释,我可以在 mysql\data\ 下找到如下所示的文件:mysql-bin.00000x

我使用以下命令在其中一个上运行了mysqlbinlog命令:mysqlbinlog --start-datetime="2011-04-01 00:00:00" mysql-bin.000006,这使我的屏幕看起来像一个矩阵,我可以识别出看起来像 TestLink 命令的行,该命令似乎成功结束.. 但没有.. 数据库中的表保持不变, 空的...

我错过了什么吗?有希望之光吗?

请帮忙..

ues*_*esp 5

bin-log 将记录它启动时的所有查询,因此您基本上有三个选项:

  1. bin-log 从一开始就启用并记录了对数据库的所有查询。在这种情况下,您可以简单地从 bin-log 恢复整个数据库。
  2. 您在启用 bin-log 后的某个时间进行了旧备份。在这种情况下,您可以从备份中恢复,并从进行备份的 bin-log 位置开始(增量备份)。
  3. bin-log 不包含来自数据库源的所有查询,并且您没有备份。在这种情况下,您(最终)将能够恢复 bin-log 中包含的所有数据,但任何不存在的数据将永远丢失。您可以尝试手动恢复任何丢失的数据,但根据您的数据结构/大小,这可能很简单甚至不可能。

从它的声音来看,您没有备份,只剩下选项 1 和 3。检查第一个 bin-log 文件,看看其中最早的条目来自哪个,看看哪种情况适用于您。如果您正在寻找 mysqlbinlog 的特定用法,请参阅官方文档,该文档很好地解释了事情。

如果您从此恢复,您应该/必须做的下一件事是实施数据库的定期备份计划,包括异地副本。