提问人:Eli 提问时间:4/7/2009 更新时间:3/3/2016 访问量:2144
快速 InnoDB 恢复?
Fast InnoDB Restore?
问:
我正在开发一个大约 5GB 的 MySQL / InnoDB 数据库的开发副本。
我需要经常恢复它以测试更改脚本,并且使用 mysqldump 文件需要相当长的时间。文件本身约为 900MB,加载大约需要一个小时。我已经删除了不重要表的数据插入,并进行了扩展插入等,但它仍然很慢。
有没有更快的方法可以做到这一点?我正在考虑从 .../mysql/database-name、id_logfile# 和 ibdata1 复制数据库文件,并在需要“重置”数据库时将它们复制回去,但这对 InnoDB 可行吗?ibdata 文件是否适用于一个数据库?我只看到一个,即使我在这个盒子上有多个 InnoBD 数据库。
谢谢!
答:
我不知道它是否会更快——事实上,它可能会更慢,这取决于你的测试对数据--,的改变程度,但是如果你把所有测试放在一个事务中,然后回滚呢?
我相信您可以复制为数据库命名的文件(服务器守护程序关闭),一切都应该没问题。似乎对样本数据库进行一些测试应该很快回答,不是吗?
评论
你也许可以用 http://dev.mysql.com/doc/refman/5.1/en/multiple-tablespaces.html 做点什么
请特别参阅 ALTER TABLE xxx IMPORT TABLESPACE 选项。
对于innodb备份和恢复速度,您可能需要查看mydumper / myloader - 由于多线程性质,因此比mysqldump快得多 http://vbtechsupport.com/1716/
使用磁盘的 LVM 快照。加载数据(漫长的过程)并拍摄快照(几秒钟)。然后,每当您需要返回快照时,玩 LVM 游戏 - 只需几秒钟即可重新加载和重新克隆任何大小的磁盘。
评论