最佳实践?Amazon EBS(弹性块存储)上 MySQL 中的消费者数据

最佳实践?Amazon EBS(弹性块存储)上 MySQL 中的消费者数据

这是一款消费者应用,因此我会关心存储成本 - 我不想有 5 份数据副本。该应用的分片功能非常好,因此我可以使用 MySQL,而不会遇到扩展问题。

Amazon EBS 具有使用 S3 的出色基线+快照备份功能。这应该占用较少空间(就存储成本而言)。

但是:magnolia.com 的故事吓死我了:基本上对损坏的数据库或文件系统进行完美的块级备份。

在 MySQL 级别上有什么东西与 EBS 一样具有存储效率吗?

答案1

没有什么可以替代异地冷备份。

任何始终在线并与实时服务器通信的备份,尤其是位于同一数据中心的备份,都存在被入侵者破坏或因某种原因(火灾、洪水等)导致原始备份失效的风险。出于这两个原因,您可能需要一个接近实时的实时备份,以防您错误地做了一些愚蠢的事情,以及一个不太频繁的冷异地备份。冷异地备份的优点在于它们尽可能地与任何可能的情况隔离(避免某个邪恶的人不惜一切代价摧毁您的所有数据),虽然您可能会丢失几天/几周的数据,但这总比失去所有数据要好。

至于备份坏数据,任何备份系统都可以默默地备份损坏的数据,这就是定期测试的目的。

如果您可以从另一台主机获得比 EBS 更好的存储速率(这并不难),您可以将该主机设置为 MySQL 从属,并为 MySQL 创建自己的 LVM 磁盘,以便您定期执行 LVM 快照。无论使用哪种快照机制,都要确保刷新表并读取锁定它们,以保持数据完整性。请参阅http://lists.mysql.com/replication/1741了解更多信息。如果您使用的是只读从属设备,您可能只需发出停止从属设备并刷新命令,尽管读取锁定不会造成影响。

或者,您可以完全停止读取从属服务器,关闭 SQL 服务器,然后使用 rdiff-backup(增量备份,仅备份更改)来复制 MySQL 文件。

然而,真正的答案是,你可能不需要所有这些。你可能只需要每隔一段时间自动执行一次 mysqldump,对其进行 gzip 压缩,然后将其上传到 S3,每隔一段时间将副本下载到你的家用电脑进行备份即可。

答案2

我们在这里看到的数据库有多大?我个人使用 mysqlhotcopy 来处理 MyISAM 表并保留多个副本。但如果没有额外的副本,我想你可以保留二进制日志。用于复制的二进制日志让所有查询从某个位置运行。也许您可以创建一个系统,该系统既保留实际数据库的副本,又保留上次备份的二进制日志,以进行增量备份。

答案3

您可能应该设置定期逻辑备份,对于 mysql 来说,这可能意味着设置专用的从属服务器来执行 mysqldump。这些也应该定期重新加载和测试。

如果您真的担心,可能值得研究一个可以对数据和/或日志文件进行某种程度的校验和计算的数据库。此外,对数据进行校验和计算的文件系统也有助于防止磁盘级别损坏。

答案4

查看具有重复数据删除功能的云备份提供商——Asigra 是该领域的领导者。如果可能的话,您希望备份数据与主数据位于不同的主轴和电网上。

重复数据删除功能可以减少带宽消耗,从而降低成本。

相关内容