在 MySQL 5.1 Enterprise 服务器上,db-dump 需要花费大量时间。我想减少恢复 db-dump 的时间,或者能够快速返回到已知状态。此机器用于测试。假设我们在点 A 有一个 DB Dump。我使用应用程序对 DB 进行了一些更改,过了一会儿,我想返回到相同的 db dump。我有以下选项。
- 删除所有内容,然后从新的 db-dump 恢复开始,大约需要 14 个小时
- 使用整个 mysql 文件夹的备份
我还有其他选择吗?有什么方法可以快速回到状态 A。或者加快我的 dbdump 速度。如果您询问,我会尝试为您提供更多详细信息(我不确定我应该在这里写什么)。
答案1
作为3molo 建议,另一个选择是将您的测试服务器作为虚拟机运行。
使用要运行的测试的初始条件设置测试机虚拟机,快照然后运行测试。如果您想恢复干净的测试设置,请使用快照恢复整个虚拟机的状态。
答案2
mysql转储:
使用 mysqldump 的“--single-transaction”。
除非 CPU 负担过重,否则请使用 gzip。
使用“OPTIMIZE TABLE”对表进行碎片整理以释放空间。
添加更多主轴。
清除不必要的数据。
其他选择:
您可以使用虚拟化技术的快照。
一些文件系统支持快照。
数据库引擎InnoDB支持快照。
答案3
这感觉就像是空间与时间的权衡。您将获得的最快恢复是删除现有目录并将数据目录的备份副本复制到正确的位置。
唯一的要注意的是,在制作数据目录的备份之前,要确保 mysql 处于静默状态(关闭或使用全局读锁),以确保磁盘上的数据一致。
答案4
查看备份软件。您没有说您有哪种表,但 Xtrabackup 的 innobackupex 脚本支持 InnoDB(和 XtraDB)以及 MyISAM 表的原始备份。
正如 @opsguy 所说,这需要一点空间权衡,因为 gzip 压缩的 mysqldump 通常比原始备份少很多,但 Xtrabackup 也提供压缩选项,并且在恢复原始备份和逻辑备份方面没有可比性。
高血压