Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用备份

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

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

自动备份遵循以下规则:

  • 数据库实例必须处于 ACTIVE 状态才能进行自动备份。当数据库实例处于 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 天之间。对于非 Aurora 数据库引擎,您也可以将备份保留期设置为 0,这会禁用自动备份。手动快照限制 (每个区域 100 个) 不适用于自动备份。

重要

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

注意

您无法在 Aurora 上禁用自动备份。Aurora 的备份保留期是由数据库集群管理的。有关更多信息,请参阅 备份和还原 Aurora 数据库集群

禁用自动备份

对于非 Aurora 数据库引擎,您可能希望在某些情况下暂时禁用自动备份,例如,在加载大量数据时。

重要

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

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

AWS 管理控制台

立即禁用自动备份

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

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

  3. 选择实例操作,然后选择修改。此时会显示 Modify DB Instance 窗口。

  4. 对于 Backup Retention Period,选择 0

  5. 选择 立即应用

  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>

启用自动备份

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

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

AWS 管理控制台

立即启用自动备份

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

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

  3. 选择实例操作,然后选择修改。此时会显示 Modify DB Instance 页面。

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

  5. 选择 立即应用

  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 数据库引擎,仅 InnoDB 存储引擎 (版本 10.2 及更高版本) 和 XtraDB 存储引擎 (版本 10.0 和 10.1) 支持自动备份。在从备份还原的过程中,配合 Aria 等其他 MariaDB 存储引擎使用这些功能,可能会导致行为不可靠。即使 Aria 是用来防止崩溃的 MyISAM 的替代品,您的表仍可能在崩溃时损坏。为此,我们建议您使用 XtraDB 存储引擎。

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

  • 要将现有的 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 将存储在内存中的数据刷新到磁盘上,从而确保从数据库快照还原后,以清空状态开始下一操作。

相关主题