与其每天早上运行 mysqldump(例如),不如只依赖 Rackspace 云服务器每天执行的服务器映像备份?或者,是否有我没有看到的未来头痛?
3 回答
如果在创建备份映像时发生任何数据库操作,则可能会出现不一致的状态。一些数据库事务可能尚未刷新到磁盘,仍驻留在内存中。
由于 mysqldump 可以使用数据库的内部状态,我建议使用 cron 作业定期执行 mysqldump,然后使用云备份备份 mysqldump 的输出。
对于 cron 作业,如下所示:
#!/bin/sh
mysqldump -h DB_HOST -u DB_USER -p'DB_PASSWORD' \
DB_NAME > YOUR_WEB_ROOT/db_backup.sql gzip -f PATH_TO_BACKUPS/db_backup.sql
参考:
http://www.rackspace.com/cloud/backup/
http://www.rackspace.com/knowledge_center/article/rackspace-cloud-backup-backing-up-databases
事实上,未来的头痛将是尝试恢复拍摄图像时可能处于不稳定状态的数据。
问题源于 MySQL 在生成映像时已打开和写入的任何文件。MySQL 转储执行锁定以确保在转储发生时没有任何内容被修改。
我建议使用Holland Backup之类的东西,因为它提供了备份 MySQL 的框架。
使用像 Holland 这样的东西的好处是你可以更好地控制这个过程。例如,您可以控制何时清除不再需要的旧备份。
Holland 还会检查以确保您有足够的可用空间来执行备份。
默认提供程序是 mysqldump,但也有其他提供程序的选项,例如使用 XtraBackup。
Rackspace Image 不是执行 MySQL 备份的理想方式,Cloud Image 就像是整个服务器的快照!您必须改用 Rackspace Cloud Backup,而不是 Cloud Image。但是,Holland Backup 是使用 Cron Jobs 执行计划备份的好方法。