我正在努力加快我正在开发的开发任务。我正在编写一些访问和分析大型MySQL数据库(大约5GB)的代码。我想跟我一起测试我的代码。在进行代码更改之后,我需要尝试一下(这将在数据库上进行一些插入/更新/删除)。它需要经过几次代码调整才能使其正常工作。但是在每次迭代之后,我需要将DB恢复到运行代码之前的状态。在每次测试后进行完整的数据库丢弃/恢复非常耗时,这正是我现在正在做的事情。所以,我正在寻找一种简化倒带过程的方法 - 可能通过记录DB更改的足够信息,以便操作数据的语句(在大约30秒内完成)可以按时间顺序反向撤消。
有没有人知道有哪些工具可以实现更快速,增量恢复?基本上,是否有一种方法可以反向重放查询日志?或者,至少对快照执行数据差异以撤消最近的更改?
仅供参考,我正在使用带有InnoDB的MySQL 5.5.x.我在Ruby on Rails中进行编码,但是还有其他非Ruby代码,理想情况下,我会寻找更多与语言无关的命令行实用程序,我可以在执行测试之前和之后运行。
答案 0 :(得分:1)
如果使用btrfs或ZFS等文件系统,则可以使用文件系统快照来捕获状态。如果为数据库内容保留一个特殊分区,则应该很容易停止mysqld,返回快照并再次启动服务器。