如何快速克隆mysql innodb数据库

时间:2017-05-11 23:55:16

标签: mysql

我们使用MySQL(innodb)来存储我们的数据。 我们有集成测试,可以启动mysql数据库(通过docker容器)并连接到数据库。我们将MyISAM用于测试DB(原因如下所述)。

我们的方法是,第一个测试将sql架构加载到模板DB中,后续测试将使用文件副本简单地克隆数据库。由于MyISAM在文件复制方面工作正常,我们只需将整个数据库目录复制到一个新目录,我们为每个测试都有一个新的克隆数据库。这一直运行良好,特别是我们的集成测试在几秒钟内完成。

然而,随着我们添加更多测试,我们继续发现由于InnoDB和MyISAM之间的差异而导致的问题(索引大小,外键约束等等)。我们希望将测试数据库移动到使用InnoDB,但希望保持快速的克隆操作。执行mysqldump和恢复将需要30秒以上,而今天需要100毫秒。

我的问题是,有没有办法快速克隆InnoDB?

1 个答案:

答案 0 :(得分:0)

备份InnoDB数据库的一种更快捷的方法是使用innobackupex之类的工具。

如果先FLUSH TABLES,您还可以对数据库进行映像,并以快照方式保持一致的方式将所有内容提交到磁盘。某些服务(例如Amazon EC2)允许对运行的实例进行映像,以后可以单独启动或用作备份还原点。