【发布时间】:2012-11-30 23:15:14
【问题描述】:
我正在设置一个安装了 WHM / cPanel 的新服务器。
我可以每天进行一次或两次完整的 mySQL 备份,这一点非常重要。
目前数据库非常小(20 mb),但一旦我们获得更多客户,容量就会迅速增加。
我现在可以创建一个 cron 作业并通过电子邮件发送备份。 但是,由于这些备份的未来规模,我认为这是一个糟糕的解决方案。
关于每日 mySQL 备份,您有哪些最佳建议?
【问题讨论】:
我正在设置一个安装了 WHM / cPanel 的新服务器。
我可以每天进行一次或两次完整的 mySQL 备份,这一点非常重要。
目前数据库非常小(20 mb),但一旦我们获得更多客户,容量就会迅速增加。
我现在可以创建一个 cron 作业并通过电子邮件发送备份。 但是,由于这些备份的未来规模,我认为这是一个糟糕的解决方案。
关于每日 mySQL 备份,您有哪些最佳建议?
【问题讨论】:
您可以设置一个 cron 作业来备份您的数据库并将其转储到您选择的目录:
mysqldump --all-databases --skip-lock-tables | gzip -9 > /your/backup/dir/here/`date +%Y%m%d`_backup.sql.gz
你从那里做什么取决于你,但我同意你不应该因为它的大小而通过电子邮件发送它。也许您可以使用SCP 将其发送到不同的服务器。
【讨论】:
skip-lock-tables?在绝大多数用户应用程序中,默认的--opt 设置将是合适的。您很可能希望--lock-tables 获得一致的数据快照。
备份的常见做法如下
您也可以每年继续这样做。
这样做的全部意义在于,您应该在备份达到周标记之前发现信息中的任何错误。您真的不需要为任何特定目的保留 REALLY 旧备份,这就是您开始删除内容的原因。
除非您在各种磁盘上拥有无限空间,否则您最好遵循这种做法,并确保您的数据不会发生任何变化。
干杯。
【讨论】:
如果您认为您的数据会增长到相当大的规模,以至于会导致大量数据库停机以进行转储,那么您首先应该考虑实施一个复制设置,以便您可以从从站中删除转储。
您当然可以在 cron 中运行一个简单的 mysqldump 命令,将转储文件放入机器上的驱动器中。然后,您可以担心通过其他方式将数据移出机器(您不想通过电子邮件发送)。请记住,只要您的数据转储完成,它就会暂时锁定您的数据库。
如果您想开箱即用,您可以在 Amazon RDS 上实施一个 MySQL 实例。它可以轻松完成复制、数据库快照等操作。
【讨论】: