在 Amazon EC2 实例上安装 MySQL,备份?

在 Amazon EC2 实例上安装 MySQL,备份?

要在Amazon EC2实例上安装MySQL(例如:t3.medium),在对EC2实例进行快照备份时需要注意什么?

在 EC2 上安装 MySQL 以及定期备份 MySQL 数据库和 EC2 备份的正确程序是什么?

我知道 RDS 是一种选择,但我想避免使用它以减少每月的费用。

编辑:Linux centos 不需要复制设置。它是一个带有 php 和 apache 的 Web 服务器。

答案1

你应该阅读崩溃一致性与应用程序一致性快照。

EBS 快照在崩溃时是一致的。如果 EC2 实例正在写入卷,则卷可能会不一致,但一般来说,快照通常是一致的,您通常应该能够从快照中恢复卷/数据库而不会出现问题。但是,“通常”是您需要根据您的要求进行测试和验证的内容 - 如果这是一个经常更改的关键数据库,您需要更加小心。

我的方法是使用 cron 作业每天运行 mysqldump,然后使用同一个 cron 作业将其备份到 S3,并将其作为快照的一部分捕获。这样,即使 EBS 快照不是 100% 一致的,我也能有信心恢复数据库。

按照常规安装 mysql,有数百个教程和大量文档,具体取决于您的操作系统。我在 t2.nano 上安装了 mysql 以及 Nginx / PHP,关闭 MySQL 性能模式后,由于服务器负载较低,因此运行良好。除了 512MB RAM 外,我还有 512MB 交换空间,但只有很少一部分交换空间被使用过。

答案2

我不会使用快照来备份 MySQL。如果您只是从实时 MySQL 实例拍摄快照,则很可能已损坏。不过,有一个解决方法 - 在拍摄快照之前,您可以使用 锁定表FLUSH TABLES WITH READ LOCK。在这种情况下,MySQL 仍将必须进行崩溃恢复(顺便说一下,我们谈论的是 InnoDB,对吧?),但此后数据库将保持一致。mylvm备份采用此方法。

Percona Xtrabackup 和 mysqldump 都是从 MySQL 进行备份的合适工具。它们各有优缺点,因此由您自行选择。在我看来,Xtrabackup 是更通用的工具,因为它适用于大型数据库,而 mysqldump 的恢复时间长得令人无法接受。

我建议使用TwinDB 备份(免责声明:我是作者)使用 Xtrabackup plus 实现保留策略、调度、流式传输到 S3、加密、备份验证 - 所有这些功能都是 Xtrabackup 所缺少的,但构成了一个合适的备份解决方案。它也是免费的和开源的。

相关内容