Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

使用备份

Amazon RDS 创建并保存数据库实例的自动备份。Amazon RDS 创建数据库实例的存储卷快照,并备份整个数据库实例而不仅仅是单个数据库。

Amazon RDS 在数据库实例的备份时段中创建数据库实例的自动备份。Amazon RDS 根据您指定的备份保留期保存数据库实例的自动备份。如果需要,您可以将数据库恢复到备份保留期中的任意时间点。

数据库实例必须处于 ACTIVE 状态才能进行自动备份。如果数据库处于其他状态,例如 STORAGE_FULL,则不会进行自动备份。

您还可以手动创建数据库快照来手动备份数据库实例。有关创建数据库快照的更多信息,请参阅创建数据库快照

您可以复制自动和手动数据库快照,还可以共享手动数据库快照。有关复制数据库快照的更多信息,请参阅复制数据库快照或数据库群集快照。有关共享数据库快照的更多信息,请参阅分享数据库快照或数据库群集快照

备份存储

您的每个区域的 Amazon RDS 备份存储由该区域的自动备份和手动数据库快照组成。备份存储等于该区域中所有实例的数据库存储之和。将数据库快照移至另一个区域将增加目标区域的备份存储。

在您删除数据库实例时,会删除所有的自动备份。删除数据库实例之后,自动备份无法恢复。如果您选择让 Amazon RDS 在删除数据库实例之前创建最终数据库快照,则可以使用该快照来恢复数据库实例。

手动快照不会删除。

备份时段

自动备份在每天的首选备份时段中进行。如果备份所需的时间超过了分配到备份时段的时间,则备份将在该时段结束后继续,直至完成。备份时段不能与数据库实例的每周维护时段重叠。

在自动备份时段期间,启动备份进程时可能会短时间暂停存储 I/O (通常不到几秒)。在备份多可用区域部署时,您可能需要等待几分钟。 对于 MariaDB、MySQL、Oracle 和 PostgreSQL,多可用区部署的备份期间不会暂停主数据库上的 I/O 活动,因为备份获取自备用数据库。对于 SQL Server,多可用区部署的备份期间将短时间暂停 I/O 活动。

如果创建数据库实例时不指定首选备份时段,则 Amazon RDS 会分配默认的 30 分钟备份时段,此时段是随机从每个区域的 8 小时时间段中选择的。下表列出了已分配默认备份时段的各个地区的时间块。

区域 时间数据块
美国西部(俄勒冈)区域 06:00–14:00 UTC
美国西部(加利福利亚北部)区域 06:00–14:00 UTC
美国东部(俄亥俄)区域 03:00–11:00 UTC
美国东部(弗吉尼亚北部)地区 03:00–11:00 UTC
亚太地区(孟买)区域 16:30–00:30 UTC
亚太区域(首尔) 13:00–21:00 UTC
亚太区域(新加坡) 14:00–22:00 UTC
亚太区域(悉尼) 12:00–20:00 UTC
亚太区域(东京) 13:00–21:00 UTC
加拿大 (中部) 区域 06:29–14:29 UTC
欧洲(法兰克福)区域 20:00–04:00 UTC
欧洲(爱尔兰)区域 22:00–06:00 UTC
欧洲 (伦敦) 区域 06:00–14:00 UTC
南美洲(圣保罗)区域 23:00–07:00 UTC
AWS GovCloud(美国) 03:00–11:00 UTC

备份保留期

您可以在创建数据库实例时设置备份保留期。如果您未设置备份保留期,则默认备份保留期为 1 天 (如果使用 Amazon RDS API 或 AWS CLI 创建数据库实例) 或 7 天 (如果使用 AWS 控制台创建数据库实例)。对于 Amazon Aurora 数据库群集,默认备份保留期为 1 天,不管创建数据库群集的方式如何。创建数据库实例后,您可以修改备份保留期。您可以将备份保留期设置为在 1 到 35 天之间。您还可以将备份保留期设置为 0,这将禁用自动备份。手动快照限制 (每个区域 100 个) 不适用于自动备份。

重要

如果将备份保留期从 0 更改为非零值或从非零值更改为 0,则将发生中断。

禁用自动备份

某些情况下 (如在加载大量数据时),您可能希望临时禁用自动备份。

重要

我们强烈建议不要禁用自动备份,因为此操作会禁用时间点恢复。禁用数据库实例的自动备份将删除此实例的所有现有自动备份。如果在禁用后又重新启用了自动备份,则您只能从重新启用自动备份的时间开始进行还原。

在此示例中,您可以通过将备份保留参数设置为 0 来禁用名为 mydbinstance 的数据库实例的自动备份。

AWS 管理控制台

立即禁用自动备份

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 DB Instances,然后选择您希望修改的数据库实例。

  3. 选择 Instance Actions,然后选择 Modify。此时会显示 Modify DB Instance 窗口。

  4. 对于 Backup Retention Period,选择 0

  5. 选择 Apply Immediately

  6. 选择 Continue (继续)

  7. 在确认页面上,选择 Modify DB Instance 可保存更改并禁用自动备份。

CLI

要立即禁用自动备份,请使用 modify-db-instance 命令并使用 --apply-immediately 将备份保留期设置为 0。

以下示例立即禁用了自动备份。

针对 Linux、OS X 或 Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --backup-retention-period 0 \ --apply-immediately

对于 Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --backup-retention-period 0 ^ --apply-immediately

要了解修改的生效时间,请调用数据库实例的 describe-db-instances,直至备份保留期的值为 0 且 mydbinstance 状态可用。

aws rds describe-db-instances --db-instance-identifier mydbinstance

API

要立即禁用自动备份,请调用带下列参数的 ModifyDBInstance 操作。

  • DBInstanceIdentifier = mydbinstance

  • BackupRetentionPeriod = 0

https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=mydbinstance &BackupRetentionPeriod=0 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-14T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

启用自动备份

如果数据库实例尚未启用自动备份,您可以随时启用。您可以将备份保留期设置为非零正值来启用自动备份。启用自动备份后,将出现中断并立即创建备份。

在此示例中,您可以将备份保留期参数设置为非零正值 (此示例中为 3),以启用名为 mydbinstance 的数据库实例的自动备份。

AWS 管理控制台

立即启用自动备份

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在导航窗格中,选择 DB Instances,然后选择您希望修改的数据库实例。

  3. 选择 Instance Actions,然后选择 Modify。此时会显示 Modify DB Instance 页面。

  4. 对于 Backup Retention Period,选择非零正值,例如 3。

  5. 选择 Apply Immediately

  6. 选择 Continue (继续)

  7. 在确认页面上,选择 Modify DB Instance 可保存更改并启用自动备份。

CLI

要立即启用自动备份,请使用 AWS CLI modify-db-instance 命令。

在此示例中,将备份保留期设置为 3 天,启用自动备份。

包括以下参数:

  • --db-instance-identifier

  • --backup-retention-period

  • --apply-immediately 或者 --no-apply-immediately

针对 Linux、OS X 或 Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --backup-retention-period 3 \ --apply-immediately

对于 Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --backup-retention-period 3 ^ --apply-immediately

API

要立即启用自动备份,请使用 AWS CLI ModifyDBInstance 命令。

在此示例中,将备份保留期设置为 3 天,启用自动备份。

包括以下参数:

  • DBInstanceIdentifier

  • BackupRetentionPeriod

  • ApplyImmediately = true

https://rds.amazonaws.com/ ?Action=ModifyDBInstance &DBInstanceIdentifier=mydbinstance &BackupRetentionPeriod=3 &ApplyImmediately=true &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2009-10-14T17%3A48%3A21.746Z &AWSAccessKeyId=<AWS Access Key ID> &Signature=<Signature>

使用不支持的 MySQL 存储引擎进行自动备份

对于 MySQL 数据库引擎,仅 InnoDB 存储引擎支持自动备份;在从备份还原的过程中,配合 MyISAM 等其他 MySQL 存储引擎使用这些功能,可能会导致性能不可靠。具体而言,由于像 MyISAM 一样的存储引擎不支持可靠的崩溃恢复,因此如果发生崩溃,就可能会损坏您的表。为此,我们建议您使用 InnoDB 存储引擎。

  • 要将现有的 MyISAM 表转换为 InnoDB 表,可以使用 alter table 命令。例如:ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • 如果您选择使用 MyISAM,可以在崩溃后使用 REPAIR 命令,尝试手动修复损坏的表 (请参阅:http://dev.mysql.com/doc/refman/5.5/en/repair-table.html)。然而,正如 MySQL 文档所指出,您可能再也不能恢复所有数据。

  • 如果要在还原前拍摄 MyISAM 表的快照,请按执行以下步骤:

    1. 停止 MyISAM 表的所有活动 (即关闭所有会话)。

      可以通过为从 SHOW FULL PROCESSLIST 命令返回的每个进程调用 mysql.rds_kill 命令来关闭所有会话。

    2. 锁定并刷新每个 MyISAM 表. 例如,以下命令锁定并刷新两个名为 myisam_table1myisam_table2 的表:

      mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
    3. 创建数据库实例的快照。完成快照后,释放 MyISAM 表上的锁定和恢复活动。可以使用以下命令为表解锁:

      mysql> UNLOCK TABLES;

    这些步骤强制 MyISAM 将存储在内存中的数据刷新到磁盘上,从而确保从数据库快照还原后,以清空状态开始下一操作。有关创建数据库快照的更多信息,请参阅创建数据库快照

使用不支持的 MariaDB 存储引擎进行自动备份

对于 MariaDB 数据库引擎,仅 XtraDB 存储引擎支持自动备份;在从备份还原的过程中,配合 Aria 等其他 MariaDB 存储引擎使用这些功能,可能会导致行为不可靠。即使 Aria 是用来防止崩溃的 MyISAM 的替代品,您的表仍可能在崩溃时损坏。为此,我们建议您使用 XtraDB 存储引擎。

  • 要将现有的 Aria 表转换为 XtraDB 表,可以使用 ALTER TABLE 命令。例如:ALTER TABLE table_name ENGINE=xtradb, ALGORITHM=COPY;

  • 如果选择使用 Aria,可以尝试使用 REPAIR TABLE 命令手动修复崩溃后受损的表。有关更多信息,请参阅 http://mariadb.com/kb/en/mariadb/repair-table/

  • 如果要在还原前拍摄 Aria 表的快照,请按执行以下步骤:

    1. 停止 Aria 表的所有活动 (即关闭所有会话)。

    2. 锁定并刷新每个 Aria 表。

    3. 创建数据库实例的快照。完成快照后,释放 Aria 表上的锁定和恢复活动。这些步骤强制 Aria 将存储在内存中的数据刷新到磁盘上,从而确保从数据库快照还原后,以清空状态开始下一操作。

相关主题