在MySQL 5.1 Enterprise服务器上,db-dump需要很长时间。 我想减less恢复db-dump的时间或者能够快速回到已知状态。 这台机器用于testing。 因此,可以说我们在A点有一个数据库转储。我用应用程序对数据库做了一些更改,过了一段时间后,我想回到相同的数据库转储。 我有以下选项。
我有其他的select吗? 快速回到状态A的一些方法或加快我的dbdump。 我会尽力为您提供更多的细节,如果你问(我不知道我应该放在这里)。
正如3molobuild议的那样 ,另一种select是将testing服务器作为虚拟机运行。
用你想运行的testing的初始条件设置你的testing机器虚拟机,执行一次快照 ,然后运行你的testing。 如果您想恢复到干净的testing设置,请使用快照恢复整个虚拟机的状态。
Mysqldump :
在mysqldump中使用'–single-transaction'。
除非你的CPU负担很重,否则使用gzip。
使用“OPTIMIZE TABLE”对表进行碎片整理以释放空间。
添加更多的主轴。
清除不必要的数据。
其他选项 :
您可以使用虚拟化技术的快照。
一些文件系统支持快照。
InnoDB支持快照。
这感觉像一个空间与时间的折衷。 您将获得的最快恢复只是删除现有目录并将备份的数据目录副本复制到正确的位置。
唯一的办法是确保mysql是无声的(无论是closures还是全局读取locking),以确保磁盘上的数据一致,然后再制作数据目录的备份副本。
你可以试试mk-parallel-restore
结帐Xtrabackup 。 你没有说你有什么样的表,但是Xtrabackup的innobackupex脚本支持InnoDB(和XtraDB)以及MyISAM表的原始备份。
正如@opsguy所说,由于gqipped mysqldump通常比原始备份要less很多,但是Xtrabackup也提供了压缩选项,所以在原始备份与逻辑备份还原方面没有任何比较。
HTH