为此,我有两个目的:
- 在亚马逊网络服务出现区域性问题时进行异地备份。
- 将生产数据从生产计费帐户复制到测试计费帐户。
目前,亚马逊似乎不支持这两个开箱即用的用例。
我见过提到的 mysqldump 和 xtrabackup(见表格帖子)。
我还看到了一个更复杂的过程(记录在这里)
- 源计费帐户 (prod) 中的新 RDS 服务器从最近的备份中分离出来。
- 在步骤 1 中启动了一个可以访问 RDS 服务器的新 EC2 实例。
- mysqldump 用于对此数据库进行备份。
- 备份被复制到异地位置(S3?)。
- 在单独的帐户和/或区域中,启动了新的 RDS 服务器。
- 数据库转储已导入。
提示和建议表示赞赏。
备份 RDS 的推荐方法是使用自动备份和数据库快照。DB快照与EBS快照基本相同,都是在后台存储在S3中,但只能在同一区域内使用。
如果您需要跨区域容错(好计划!),如果不从 mysqldump 中“艰难地”进行操作,就无法在另一个区域中恢复您的数据。您的替代方法是使用 mysqldump 进行备份(对于任何合理大小的数据集来说都是缓慢而糟糕的),或者在另一个区域设置您自己的基于 EC2 的从站,然后使用任何可用的方法(xtrabackup、EBS 快照等)进行备份。但是,您又回到了管理自己的 MySQL 实例,因此您不妨完全放弃 RDS。
对我来说,RDS 绝对没有任何好处,在性能、灵活性和可靠性方面有很多缺点。我会问自己 RDS 为您提供了什么价值。
我遇到过同样的问题。我的解决方案是编写一个简单的 bash 脚本。但是,它仅限于单个区域。
这是有问题的脚本:
AWS RDS 现在支持快照的跨区域和跨账户复制,这将让您只需使用 RDS 即可完成您的目标。
此时,您仍然必须使用转储脚本方法将备份备份到 S3。使用 S3-IA 或 Glacier 的能力在节省成本方面会很好,因为 RDS 备份成本处于 S3 标准或更高(因数据库而异)。