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

复制数据库群集快照

使用此主题中的过程复制数据库群集快照。如果源数据库引擎是 Aurora,则快照是数据库群集快照。如果源数据库引擎为 MariaDB、Microsoft SQL Server、MySQL、Oracle 或 PostgreSQL,则您的快照为数据库快照。有关如何复制数据库快照的说明,请参阅复制数据库快照

对于每个 AWS 账户,一次最多可以从一个 AWS 区域向另一个 AWS 区域复制五个数据库群集快照。支持复制加密和未加密的数据库群集快照。如果将数据库群集快照复制到另一个 AWS 区域,则可创建保留在该 AWS 区域中的手动数据库群集快照。从源 AWS 区域复制出数据库群集快照会产生 Amazon RDS 数据传输费。

在新 AWS 区域中创建数据库群集快照副本后,该数据库群集快照副本的行为与该 AWS 区域中所有其他数据库群集快照的行为相同。

AWS 管理控制台

此程序可用于在同一 AWS 区域或跨区域复制加密和未加密的数据库群集快照。

要在正在进行复制时取消操作,请在数据库群集快照处于正在复制状态时删除目标数据库群集快照。

复制数据库群集快照

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

  2. 在导航窗格中,选择 Snapshots

  3. 选中要复制的数据库快照的复选框。

  4. 选择 Snapshot Actions,然后选择 Copy Snapshot。此时显示 Make Copy of DB Snapshot 页面。

     复制数据库快照
  5. (可选) 要将数据库群集快照复制到其他 AWS 区域,请在 Destination Region 中选择该 AWS 区域。

  6. New DB Snapshot Identifier 中键入数据库群集快照副本的名称。

  7. 要将标签和值从快照复制到快照的副本,请选择 Copy Tags

  8. 对于 Enable Encryption,请选择下列选项之一:

    • 如果数据库群集快照未加密,且不需要加密该副本,请选择 No

    • 如果数据库群集快照未加密,但需要加密该副本,请选择 Yes。在这种情况下,对于 Master Key,请指定用于加密数据库群集快照副本的 KMS 密钥标识符。

    • 如果数据库群集快照已加密,请选择 Yes。在这种情况下,必须加密该副本,因此 Yes 为已选中状态。对于Master Key,指定用于加密数据库群集快照副本的 KMS 密钥标识符。

  9. 选择 Copy Snapshot.

使用 AWS CLI 或 Amazon RDS API 复制未加密的数据库群集快照

使用以下各节中的步骤,通过 AWS CLI 或 Amazon RDS API 复制未加密的数据库群集快照。

要在正在进行复制时取消操作,请在数据库群集快照处于正在复制状态时删除由 --target-db-cluster-snapshot-identifierTargetDBClusterSnapshotIdentifier 标识的目标数据库群集快照。

CLI

要复制数据库群集快照,请使用 AWS CLI copy-db-cluster-snapshot 命令。如果要将快照复制到其他 AWS 区域,请在要复制快照到其中的 AWS 区域中运行该命令。

以下选项用于复制未加密的数据库群集快照:

  • --source-db-cluster-snapshot-identifier - 要复制的加密数据库群集快照的标识符。如果要将快照复制到另一个 AWS 区域,此标识符必须采用源 AWS 区域的 ARN 格式。

  • --target-db-cluster-snapshot-identifier - 加密数据库群集快照的新副本的标识符。

以下代码在运行命令的 AWS 区域中创建名为 myclustersnapshotcopy 的数据库群集快照 arn:aws-cn:rds:us-east-1:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20130805 的副本。创建副本时,原始快照上的所有标签都将复制到快照副本。

针对 Linux、OS X 或 Unix:

aws rds copy-db-cluster-snapshot \ --source-db-cluster-snapshot-identifier arn:aws-cn:rds:us-east-1:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20130805 \ --target-db-cluster-snapshot-identifier myclustersnapshotcopy \ --copy-tags

对于 Windows:

aws rds copy-db-cluster-snapshot ^ --source-db-cluster-snapshot-identifier arn:aws-cn:rds:us-east-1:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20130805 ^ --target-db-cluster-snapshot-identifier myclustersnapshotcopy ^ --copy-tags

API

要复制数据库群集快照,请使用 Amazon RDS API CopyDBClusterSnapshot 操作。如果要将快照复制到其他 AWS 区域,请在要复制快照到其中的 AWS 区域中执行该操作。

以下参数用于复制未加密的数据库群集快照:

  • SourceDBClusterSnapshotIdentifier - 要复制的加密数据库群集快照的标识符。如果要将快照复制到另一个 AWS 区域,此标识符必须采用源 AWS 区域的 ARN 格式。

  • TargetDBClusterSnapshotIdentifier - 加密数据库群集快照的新副本的标识符。

以下代码在 us-west-1 区域中创建名为 myclustersnapshotcopy 的快照 arn:aws-cn:rds:us-east-1:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20130805 的副本。创建副本时,原始快照上的所有标签都将复制到快照副本。

https://rds.us-west-1.amazonaws.com/ ?Action=CopyDBClusterSnapshot &CopyTags=true &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012%3Acluster-snapshot%3Aaurora-cluster1-snapshot-20130805 &TargetDBSnapshotIdentifier=myclustersnapshotcopy &Version=2013-09-09 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140429/us-west-1/rds/aws4_request &X-Amz-Date=20140429T175351Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2

使用 AWS CLI 或 Amazon RDS API 复制加密的数据库群集快照

使用以下各节中的步骤,通过 AWS CLI 或 Amazon RDS API 复制加密的数据库群集快照。

要在正在进行复制时取消操作,请在数据库群集快照处于正在复制状态时删除由 --target-db-cluster-snapshot-identifierTargetDBClusterSnapshotIdentifier 标识的目标数据库群集快照。

CLI

要复制数据库群集快照,请使用 AWS CLI copy-db-cluster-snapshot 命令。如果要将快照复制到其他 AWS 区域,请在要复制快照到其中的 AWS 区域中运行该命令。

以下选项用于复制加密的数据库群集快照:

  • --source-region - 如果要将快照复制到其他 AWS 区域,请指定将要从中复制加密数据库群集快照的 AWS 区域。

    如果要将快照到其他 AWS 区域,且不指定 source-region,则必须指定 pre-signed-url 选项。pre-signed-url 值必须是一个 URL,包含要在源 AWS 区域 (从中复制数据库群集快照) 中调用的 CopyDBClusterSnapshot 操作的签名版本 4 签名的请求。要了解有关 pre-signed-url 的更多信息,请参阅 copy-db-cluster-snapshot

  • --source-db-cluster-snapshot-identifier - 要复制的加密数据库群集快照的标识符。如果要将快照复制到另一个 AWS 区域,此标识符必须采用源 AWS 区域的 ARN 格式。如果是这种情况,source-db-cluster-snapshot-identifier 中指定的 AWS 区域必须与为 --source-region 指定的 AWS 区域匹配。

  • --target-db-cluster-snapshot-identifier - 加密数据库群集快照的新副本的标识符。

  • --kms-key-id - 用于对数据库群集快照副本进行加密的密钥的 KMS 密钥标识符。

    如果数据库群集快照已加密,要在相同 AWS 区域中复制快照,并且需要指定新的 KMS 加密密钥用于加密副本,则可以选择使用此选项。否则,数据库群集快照副本将使用与源数据库群集快照相同的 KMS 密钥进行加密。

    如果数据库群集快照已加密,并且要将该快照复制到另一 AWS 区域,则必须使用此选项。在这种情况下,必须为目标 AWS 区域指定 KMS 密钥。

以下代码示例将加密的数据库群集快照从 us-west-2 区域复制到 us-east-1 区域。在 us-east-1 区域调用命令。

针对 Linux、OS X 或 Unix:

aws rds copy-db-cluster-snapshot \ --source-db-cluster-snapshot-identifier arn:aws-cn:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115 \ --target-db-cluster-snapshot-identifier myclustersnapshotcopy \ --source-region us-west-2 \ --kms-key-id my-us-east-1-key

对于 Windows:

aws rds copy-db-cluster-snapshot ^ --source-db-cluster-snapshot-identifier arn:aws-cn:rds:us-west-2:123456789012:cluster-snapshot:aurora-cluster1-snapshot-20161115 ^ --target-db-cluster-snapshot-identifier myclustersnapshotcopy ^ --source-region us-west-2 ^ --kms-key-id my-us-east-1-key

API

要复制数据库群集快照,请使用 Amazon RDS API CopyDBClusterSnapshot 操作。如果要将快照复制到其他 AWS 区域,请在要复制快照到其中的 AWS 区域中执行该操作。

以下参数用于复制加密的数据库群集快照:

  • SourceDBClusterSnapshotIdentifier - 要复制的加密数据库群集快照的标识符。如果要将快照复制到另一个 AWS 区域,此标识符必须采用源 AWS 区域的 ARN 格式。

  • TargetDBClusterSnapshotIdentifier - 加密数据库群集快照的新副本的标识符。

  • KmsKeyId - 用于对数据库群集快照副本进行加密的密钥的 KMS 密钥标识符。

    如果数据库群集快照已加密,要在相同 AWS 区域中复制快照,并且需要指定新的 KMS 加密密钥用于加密副本,则可以选择使用此参数。否则,数据库群集快照副本将使用与源数据库群集快照相同的 KMS 密钥进行加密。

    如果数据库群集快照已加密,并且要将该快照复制到其他 AWS 区域,则必须使用此参数。在这种情况下,必须为目标 AWS 区域指定 KMS 密钥。

  • PreSignedUrl - 如果要将快照复制到其他 AWS 区域,则必须指定 PreSignedUrl 参数。PreSignedUrl 值必须是一个 URL,包含要在源 AWS 区域 (从中复制数据库群集快照) 中调用的 CopyDBClusterSnapshot 操作的签名版本 4 签名的请求。要了解有关使用预签名 URL 的更多信息,请参阅 CopyDBClusterSnapshot

    要自动生成预签名 URL 而无需手动干预,请改用带 --source-region 选项的 AWS CLI copy-db-cluster-snapshot 命令。

以下代码示例将加密的数据库群集快照从 us-west-2 区域复制到 us-east-1 区域。在 us-east-1 区域调用操作。

https://rds.us-east-1.amazonaws.com/ ?Action=CopyDBClusterSnapshot &KmsKeyId=my-us-east-1-key &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F %253FAction%253DCopyDBClusterSnapshot %2526DestinationRegion%253Dus-east-1 %2526KmsKeyId%253Dmy-us-east-1-key %2526SourceDBClusterSnapshotIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Acluster-snapshot%25253Aaurora-cluster1-snapshot-20161115 %2526SignatureMethod%253DHmacSHA256 %2526SignatureVersion%253D4 %2526Version%253D2014-10-31 %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256 %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request %2526X-Amz-Date%253D20161117T215409Z %2526X-Amz-Expires%253D3600 %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBClusterSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Acluster-snapshot%3Aaurora-cluster1-snapshot-20161115 &TargetDBClusterSnapshotIdentifier=myclustersnapshotcopy &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request &X-Amz-Date=20161117T221704Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=da4f2da66739d2e722c85fcfd225dc27bba7e2b8dbea8d8612434378e52adccf

跨账户复制数据库群集快照

您可以允许其他 AWS 账户通过使用 Amazon RDS API ModifyDBClusterSnapshotAttributeCopyDBClusterSnapshot 操作来复制您指定的数据库群集快照。只能在同一 AWS 区域中跨账户复制数据库群集快照。跨账户复制的流程如下,其中账户 A 提供可复制的快照,账户 B 复制该快照。

  1. 使用账户 A,调用 ModifyDBClusterSnapshotAttribute,为 参数指定 restoreAttributeName,并为 ValuesToAdd 参数指定账户 B 的 ID。

  2. (如果快照已加密) 使用账户 A,更新 KMS 密钥的密钥策略,首先将账户 B 的 ARN 添加为 Principal,然后允许 kms:CreateGrant 操作。

  3. (如果快照已加密) 使用账户 B,选择或创建 IAM 用户,然后将允许用户使用 KMS 密钥复制加密数据库快照的 IAM 策略挂载到该用户。

  4. 使用账户 B,调用 CopyDBClusterSnapshot 并使用 SourceDBClusterSnapshotIdentifier 参数指定要复制的数据库群集快照的 ARN,其中必须包括账户 A 的 ID。

要列出有权还原数据库快照的所有 AWS 账户,请使用 DescribeDBSnapshotAttributesDescribeDBClusterSnapshotAttributes API 操作。

要取消 AWS 账户的共享权限,请使用 ModifyDBSnapshotAttributeModifyDBClusterSnapshotAttribute 操作并将 AttributeName 设为 restore,然后在 ValuesToRemove 参数中删除账户的 ID。

将未加密的数据库群集快照复制到另一账户

使用以下步骤将未加密的数据库群集快照复制到相同 AWS 区域中的另一账户。

  1. 在数据库群集快照的源账户中,调用 ModifyDBClusterSnapshotAttribute,为 参数指定 restoreAttributeName,并为 ValuesToAdd 参数指定目标账户的 ID。

    使用账户 987654321 运行以下示例将允许两个 AWS 账户标识符 (123451234512 and 123456789012) 恢复名为 manual-snapshot1 的数据库快照。

    https://rds.us-west-2.amazonaws.com/ ?Action=ModifyDBClusterSnapshotAttribute &AttributeName=restore &DBClusterSnapshotIdentifier=manual-snapshot1 &SignatureMethod=HmacSHA256&SignatureVersion=4 &ValuesToAdd.member.1=123451234512 &ValuesToAdd.member.2=123456789012 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request &X-Amz-Date=20150922T220515Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=ef38f1ce3dab4e1dbf113d8d2a265c67d17ece1999ffd36be85714ed36dddbb3
  2. 在目标账户中,调用 CopyDBClusterSnapshot 并使用 SourceDBClusterSnapshotIdentifier 参数指定要复制的数据库群集快照的 ARN,其中必须包括源账户的 ID。

    使用账户 123451234512 运行以下示例将从账户 987654321 复制数据库群集快照 aurora-cluster1-snapshot-20130805,然后创建名为 dbclustersnapshot1 的数据库群集快照。

    https://rds.us-west-2.amazonaws.com/ ?Action=CopyDBClusterSnapshot &CopyTags=true &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBClusterSnapshotIdentifier=arn:aws-cn:rds:us-west-2:987654321:cluster-snapshot:aurora-cluster1-snapshot-20130805 &TargetDBClusterSnapshotIdentifier=dbclustersnapshot1 &Version=2013-09-09 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request &X-Amz-Date=20140429T175351Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2

将加密的数据库群集快照复制到另一账户

使用以下步骤将加密的数据库群集快照复制到相同 AWS 区域中的另一账户。

  1. 在数据库群集快照的源账户中,调用 ModifyDBClusterSnapshotAttribute,为 参数指定 restoreAttributeName,并为 ValuesToAdd 参数指定目标账户的 ID。

    使用账户 987654321 运行以下示例将允许两个 AWS 账户标识符 (123451234512 and 123456789012) 恢复名为 manual-snapshot1 的数据库快照。

    https://rds.us-west-2.amazonaws.com/ ?Action=ModifyDBClusterSnapshotAttribute &AttributeName=restore &DBClusterSnapshotIdentifier=manual-snapshot1 &SignatureMethod=HmacSHA256&SignatureVersion=4 &ValuesToAdd.member.1=123451234512 &ValuesToAdd.member.2=123456789012 &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request &X-Amz-Date=20150922T220515Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=ef38f1ce3dab4e1dbf113d8d2a265c67d17ece1999ffd36be85714ed36dddbb3
  2. 在数据库群集快照的源账户中,更新 KMS 密钥的密钥策略,首先将目标账户的 ARN 添加为 Principal,然后允许 kms:CreateGrant 操作。有关更多信息,请参阅 允许访问 AWS KMS 加密密钥

  3. 在目标账户中,选择或创建 IAM 用户,然后将允许用户使用 KMS 密钥复制加密数据库快照的 IAM 策略挂载到该用户。有关更多信息,请参阅 创建 IAM 策略来启用加密快照的复制功能

  4. 在目标账户中,调用 CopyDBClusterSnapshot 并使用 SourceDBClusterSnapshotIdentifier 参数指定要复制的数据库群集快照的 ARN,其中必须包括源账户的 ID。

    使用账户 123451234512 运行以下示例将从账户 987654321 复制数据库群集快照 aurora-cluster1-snapshot-20130805,然后创建名为 dbclustersnapshot1 的数据库群集快照。

    https://rds.us-west-2.amazonaws.com/ ?Action=CopyDBClusterSnapshot &CopyTags=true &SignatureMethod=HmacSHA256 &SignatureVersion=4 &SourceDBClusterSnapshotIdentifier=arn:aws-cn:rds:us-west-2:987654321:cluster-snapshot:aurora-cluster1-snapshot-20130805 &TargetDBClusterSnapshotIdentifier=dbclustersnapshot1 &Version=2013-09-09 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request &X-Amz-Date=20140429T175351Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2