我有两个目的:

  1. 在Amazon Web Services有区域性问题的情况下,具有异地备份。
  2. 将生产数据从生产帐单帐户复制到Beta帐单帐户。

目前,Amazon似乎并未支持这两个用例中的任何一个。

我看过MySqlDump和Xtrabackup(请参阅 形式 帖子)提到。

我还看到了一个更复杂的过程(记录在案 这里)

  1. 源计费帐户(POR)中的新RDS服务器已启用最近的备份。
  2. 一个新的EC2实例正在启用,该实例可以在步骤1中访问RDS服务器。
  3. mySqlDump用于对此数据库进行备份。
  4. 备份被复制到异地位置(S3?)。
  5. 在单独的帐户和/或区域中,新鲜的RDS服务器被旋转。
  6. 导入数据库转储。

提示和建议将不胜感激。

有帮助吗?

解决方案

建议备份RDS的推荐方法是 自动备份DB快照. 。 DB快照基本上与EBS快照相同,EBS快照存储在幕后的S3中,但仅在同一区域内可用。

如果您需要跨区域的容忍度(好计划!),则无法恢复您的数据 另一个地区 没有从mysqldump中“艰难的方式”。您的替代方法是使用mysqldump备份(对于任何合理大小的数据集而缓慢而可怕),或在另一个区域中设置自己的基于EC2的从属,并使用任何可用方法(Xtrabackup,ebs快照等)向后备份。但是,然后您又回到了管理自己的MySQL实例,因此您也可以完全放弃RDS。

对于我的钱,RDS绝对没有任何好处,并且在性能,灵活性和可靠性方面都有很多缺点。我会问自己RDS为您提供什么价值。

其他提示

我遇到过同样的问题。我的解决方案是写一个 简单的bash脚本. 。但是,它仅限于一个区域。

这是所讨论的脚本:

#!/bin/bash
NOWDATE=`date +%Y-%m-%d`
BACKUPNAME="$NOWDATE.sql.gz"

echo "Creating backup of database finances to $BACKUPNAME"
mysqldump –user=user –password=password database_name | gzip -9 > $BACKUPNAME

echo "Succesfully created database backup"

echo "Uploading backup to Amazon S3 bucket…"
s3cmd put $BACKUPNAME s3://path/to/file/$BACKUPNAME

echo "Successfully uploaded backup to S3"

echo "Deleting backup file…"
rm $BACKUPNAME

echo "Done"

AWS RDS现在支持跨区域和跨学院 快照的复制 这将使您只需使用RDS即可完成目标。

此时,您仍然必须使用转储脚本方法来获得S3的备份。使用S3-IA或冰川的能力在节省成本方面会很好,因为RDS备份成本在S3标准或更高(按DB变化)。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top