快速 InnoDB 恢复?

Fast InnoDB Restore?

提问人:Eli 提问时间:4/7/2009 更新时间:3/3/2016 访问量:2144

问:

我正在开发一个大约 5GB 的 MySQL / InnoDB 数据库的开发副本。

我需要经常恢复它以测试更改脚本,并且使用 mysqldump 文件需要相当长的时间。文件本身约为 900MB,加载大约需要一个小时。我已经删除了不重要表的数据插入,并进行了扩展插入等,但它仍然很慢。

有没有更快的方法可以做到这一点?我正在考虑从 .../mysql/database-name、id_logfile# 和 ibdata1 复制数据库文件,并在需要“重置”数据库时将它们复制回去,但这对 InnoDB 可行吗?ibdata 文件是否适用于一个数据库?我只看到一个,即使我在这个盒子上有多个 InnoBD 数据库。

谢谢!

mysql innodb

评论


答:

1赞 tpdi 4/7/2009 #1

我不知道它是否会更快——事实上,它可能会更慢,这取决于你的测试对数据--,的改变程度,但是如果你把所有测试放在一个事务中,然后回滚呢?

1赞 MarkusQ 4/7/2009 #2

我相信您可以复制为数据库命名的文件(服务器守护程序关闭),一切都应该没问题。似乎对样本数据库进行一些测试应该很快回答,不是吗?

评论

1赞 Morgan Christiansson 2/11/2011
正确,但如果数据库正在运行,则不起作用。mysqlperformanceblog.com/2009/03/03/......是一篇关于进行MySQL备份时要考虑的事项的非常好的文章。
0赞 jewel 1/6/2010 #3

你也许可以用 http://dev.mysql.com/doc/refman/5.1/en/multiple-tablespaces.html 做点什么

请特别参阅 ALTER TABLE xxx IMPORT TABLESPACE 选项。

0赞 p4guru 1/9/2012 #4

对于innodb备份和恢复速度,您可能需要查看mydumper / myloader - 由于多线程性质,因此比mysqldump快得多 http://vbtechsupport.com/1716/

1赞 Rick James 3/3/2016 #5

使用磁盘的 LVM 快照。加载数据(漫长的过程)并拍摄快照(几秒钟)。然后,每当您需要返回快照时,玩 LVM 游戏 - 只需几秒钟即可重新加载和重新克隆任何大小的磁盘。