mysql - 从 Amazon RDS 下载 MySql 备份/快照

标签 mysql amazon-web-services amazon-rds mysql-backup

我在我的生产实例上的 Amazon RDS 上托管了我的 MySql 数据库。我有另一个用于开发目的的 RDS 实例。现在我正在寻找将数据库备份/快照从生产实例恢复到开发实例的最佳/最快方法,因为我的数据库非常庞大,备份下载过程非常耗时,而且它会阻止我的所有表进行读/写事务.或者是否有任何选项可以在不阻止插入/更新/选择事务的情况下下载备份?

谢谢。

编辑:

这里我犯了一个错误,在上面的问题中我的意思是说 account 不是 Instance。我有两个不同的帐户,一个用于生产,另一个用于开发/测试。我想将快照从生产账户的实例恢复到开发账户的实例,并且两个实例都位于同一区域(例如新加坡)。

最佳答案

鉴于您已澄清您需要进行备份并将其放回不同 AWS 账户中的不同 RDS 实例;唯一的方法是获取 sql-dump 或数据库备份并重新恢复它;因为您无法在帐户之间拍摄和共享快照。

解决 I/O 阻塞和事务瓶颈的一种方法是利用 Read-Replica。这样,整个备份过程将在只读副本中完成,您的主实例不会受到影响。

  • 创建一个只读副本
  • 尽可能多地填充副本
  • 然后应用您的 SQL 备份工具连接到该副本实例并创建备份
  • 将备份放入 S3
  • 转到新实例并将其恢复

PS - 注意事项:

  1. 当我们使用只读副本时,主实例和只读副本之间可能存在陈旧(复制 - 滞后)。在开始该过程之前,您需要考虑这一点。复制是异步进行的。

  2. 您应该尝试从 EC2 实例执行备份操作,以利用延迟、网络带宽管道。

关于mysql - 从 Amazon RDS 下载 MySql 备份/快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24401741/

相关文章:

php - 使用 cron 删除旧的数据库行?

amazon-web-services - 如何在不删除现有内容的情况下向 AWS Lambda 添加环境变量?

amazon-web-services - 将 EBS 从 Spot 队列附加到 EC2 实例

mysql - 如何左连接以选择with语句

mysql - iOS 上开发人员提供的用户更新列表的方法

amazon-web-services - 如何更改 aws cli 中的默认配置文件变量?

amazon-web-services - 如何查看已删除的RDS实例上的事件?

amazon-web-services - 默认情况下,AWS RDS Aurora在不同区域之间进行复制时,为什么选择 “Multi-AZ Deployment”?

php - Amazon DynamoDB 是否比 Amazon RDS (php) 慢?

php - Cakephp 复杂关系查找