1

我正在尝试加快我正在处理的开发任务。我正在编写一些代码来访问和分析一个大型 MySQL 数据库(大约 5GB)。我想在进行过程中测试我的代码。进行代码更改后,我需要尝试一下(这将在数据库上进行一些插入/更新/删除)。需要多次迭代代码调整才能使其正常工作。但是在每次迭代之后,我需要将数据库恢复到运行代码之前的状态。每次测试后进行完整的数据库删除/恢复非常耗时,这就是我现在正在做的事情。因此,我正在寻找一种简化倒带过程的方法——也许通过使用足够的信息记录 DB 更改,以便可以以相反的时间顺序撤消操作数据的语句(在大约 30 秒的过程中完成)。

有谁知道那里有任何工具可以进行更快速的增量恢复?基本上,有没有办法反向重播查询日志?或者,至少对快照进行数据差异以撤消最近的更改?

仅供参考,我将 MySQL 5.5.x 与 InnoDB 一起使用。我正在使用 Ruby on Rails 进行编码,但理想情况下还有其他非 Ruby 代码,因此我正在寻找更多可以在执行测试之前和之后运行的独立于语言的命令行实用程序。

4

1 回答 1

1

如果您使用像 btrfs 或 ZFS 这样的文件系统,您可以使用文件系统快照来捕获状态。如果您为数据库内容保留一个特殊分区,则应该很容易停止 mysqld,返回快照并重新启动服务器。

于 2012-03-06T21:50:56.480 回答