

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 複製 Amazon RDS Custom for SQL Server 資料庫快照
<a name="custom-copying-snapshot-sqlserver"></a>

透過 RDS Custom for SQL Server，即可複製自動備份和手動資料庫​快照。複製快照之後，您建立的複本即為手動快照。您可以製作自動備份或手動快照的多個複本，但每個複本都必須具有唯一的識別符。

您只能在可使用 RDS Custom for SQL Server 的不同 AWS AWS 區域 帳戶中複製快照。目前不支援下列作業：
+ 在相同的 AWS 區域中複製資料庫快照。
+ 跨帳戶複製資料庫快照 AWS 。

RDS Custom for SQL Server 支援增量快照複製。如需詳細資訊，請參閱[增量快照複製的考量事項](USER_CopySnapshot.md#USER_CopySnapshot.Incremental)。

**Topics**
+ [限制](#custom-copying-snapshot-sqlserver.Limitations)
+ [處理加密](#custom-copying-snapshot-sqlserver.Encryption)
+ [跨區域複製](#custom-copying-snapshot-sqlserver.XRCopy)
+ [使用自訂引擎版本 (CEV) 建立的資料庫執行個體快照](#custom-copying-snapshot-sqlserver.CEVSnap)
+ [將所需的許可授予您的 IAM 主體](#custom-copying-snapshot-sqlserver.GrantPermIAM)
+ [複製資料庫快照](#custom-copying-snapshot-sqlserver.CopyingDBSnapshot)

## 限制
<a name="custom-copying-snapshot-sqlserver.Limitations"></a>

下列限制適用於複製 RDS Custom for SQL Server 的資料庫快照：
+ 如果您在目標快照變成可用之前刪除來源快照，則快照複本可能會失敗。刪除來源快照之前，請確認目標快照的狀態為 `AVAILABLE`。
+ 您無法在資料庫快照複製請求中指定選項群組名稱或複製選項群組。
+ 如果您在複製程序之前或期間刪除來源資料庫快照的任何相依 AWS 資源，您的複製快照請求可能會以非同步方式失敗。
  + 如果您刪除儲存在帳戶中 RDS Custom 受管 S3 儲存貯體中之來源資料庫執行個體的服務主金鑰 (SMK) 備份檔案，資料庫快照複本就會以非同步方式成功。不過，依賴 SMK 的 SQL Server 功能 (例如啟用 TDE 的資料庫) 會遇到問題。如需詳細資訊，請參閱[針對 RDS Custom for SQL Server 中已啟用 TDE 之資料庫的 PENDING\$1RECOVERY 狀態進行故障診斷](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.pending_recovery)。
+  AWS 區域 目前不支援在相同 內複製資料庫快照。
+ 目前不支援跨 AWS 帳戶複製資料庫快照。

複製 Amazon RDS 資料庫快照的限制也適用於 RDS Custom for SQL Server。如需詳細資訊，請參閱[限制](USER_CopySnapshot.md#USER_CopySnapshot.Limitations)。

## 處理加密
<a name="custom-copying-snapshot-sqlserver.Encryption"></a>

所有 RDS Custom for SQL Server 資料庫執行個體和資料庫快照皆使用 KMS 金鑰加密。您只能將加密的快照複製到加密的快照，因此您必須 AWS 區域 為資料庫快照複製請求指定目的地中有效的 KMS 金鑰。

在整個複製過程中來源快照仍會保持加密狀態。Amazon RDS 使用封套加密，可在具有指定目的地 AWS 區域 KMS 金鑰的複製作業期間保護資料。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》中的[封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)。

## 跨區域複製
<a name="custom-copying-snapshot-sqlserver.XRCopy"></a>

您可跨 AWS 區域複製資料庫快照。但是，跨區域快照複製具有特定的限制和考量。

### 授權 RDS 跨 進行通訊 AWS 區域 以進行快照複製
<a name="custom-copying-snapshot-sqlserver.XRCopy.Authorize"></a>

成功處理跨區域資料庫快照複製請求後，RDS 隨即啟動複製。系統會建立 RDS 存取來源快照的授權請求。此授權請求會將來源資料庫快照連結至目標資料庫快照。這可讓 RDS 僅複製到指定的目標快照。

RDS 會透過使用服務連結 IAM 角色中的 `rds:CrossRegionCommunication` 許可來驗證授權。如果授權複本，RDS 即可與來源區域通訊並完成複本作業。

對於之前未透過 CopyDBSnapshot 請求授權的資料庫快照，RDS 將無法存取。複製完成後，即會撤銷授權。

RDS 使用服務連結的角色來驗證來源區域中的授權。如果您在複製程序期間刪除服務連結的角色，則複本會失敗。

如需詳細資訊，請參閱《AWS Identity and Access Management 使用者指南》**中的[使用服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

### 使用 AWS Security Token Service 登入資料
<a name="custom-copying-snapshot-sqlserver.XRCopy.STS"></a>

來自 global AWS Security Token Service (AWS STS) 端點的工作階段權杖僅在預設啟用 AWS 區域 的 中有效 （商業區域）。如果您在 中使用來自 `assumeRole` API 操作的登入資料 AWS STS，如果來源區域是選擇加入區域，請使用區域端點。否則，請求將失敗。您的登入資料在兩個區域中都必須有效，只有在您使用區域 AWS STS 端點時，才適用於選擇加入區域。

若要使用全域端點，請確保操作時在這兩個區域均已將其啟用。在 AWS STS 帳戶設定`Valid`中的所有 AWS 區域 中，將全域端點設定為 。

如需詳細資訊，請參閱《AWS Identity and Access Management 使用者指南》**中的[管理 AWS 區域中的 AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)。

## 使用自訂引擎版本 (CEV) 建立的資料庫執行個體快照
<a name="custom-copying-snapshot-sqlserver.CEVSnap"></a>

對於使用[自訂引擎版本 (CEV)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.html) 的資料庫執行個體之資料庫快照，RDS 會將 CEV 與資料庫快照建立關聯。若要跨 複製與 CEV 相關聯的來源資料庫快照 AWS 區域，RDS 會將 CEV 以及來源資料庫快照複製到目的地區域。

如果您要將多個與相同 CEV 相關聯的資料庫快照複製到相同的目的地區域，則第一個複製請求會複製相關聯的 CEV。下列請求的複製程序會尋找最初複製的 CEV，並將其與下列資料庫快照複本建立關聯。現有的 CEV 複本必須處於 `AVAILABLE` 狀態，才能與資料庫快照複本建立關聯。

若要複製與 CEV 相關聯的資料庫快照，請求者的 IAM 政策必須具有許可，可同時授權資料庫快照複製和相關聯 CEV 複製。請求者的 IAM 政策需要下列許可，才能允許相關聯的 CEV 複製：
+ `rds:CopyCustomDBEngineVersion` - 您的申請者 IAM 主體需要具有許可，可將來源 CEV 與來源資料庫快照複製到目標區域。如果您的請求者 IAM 主體未獲授權複製來源 CEV，則快照複製請求會因授權錯誤而失敗。
+ `ec2:CreateTags` - 來源 CEV 的基礎 EC2 AMI 會複製到目標區域，做為 CEV 複本的一部分。RDS Custom 在複製 AMI 之前，會嘗試使用 `AWSRDSCustom` 標籤來標記 AMI。請確定您的請求者 IAM 主體具有許可，可針對來源區域中來源 CEV 基礎的 AMI 建立標籤。

如需更多 CEV 複製許可的相關資訊，請參閱 [將所需的許可授予您的 IAM 主體](#custom-copying-snapshot-sqlserver.GrantPermIAM)。

## 將所需的許可授予您的 IAM 主體
<a name="custom-copying-snapshot-sqlserver.GrantPermIAM"></a>

請確定您有足夠的存取權，可複製 RDS Custom for SQL Server 資料庫快照。使用主控台或 CLI 複製資料庫快照的 IAM 角色或使用者 (稱為 IAM 主體) 必須具有下列任一政策，才能成功建立資料庫執行個體：
+ `AdministratorAccess` 政策或
+ 具有下列額外許可的 `AmazonRDSFullAccess` 政策：

  ```
  s3:CreateBucket
  s3:GetBucketPolicy
  s3:PutBucketPolicy
  kms:CreateGrant
  kms:DescribeKey
  ec2:CreateTags
  ```

RDS Custom 在跨 AWS 區域複製快照期間會使用這些許可。這些許可會設定您帳戶中 RDS Custom 作業所需的資源。如需 `kms:CreateGrant` 許可的詳細資訊，請參閱 [AWS KMS key 管理](Overview.Encryption.Keys.md)。

以下範例 JSON 政策授予除 `AmazonRDSFullAccess` 政策之外的必要許可。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateS3BucketAndReadWriteBucketPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateKmsGrant",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateEc2Tags",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**注意**  
確保所列出的許可不受服務控制政策 (SCP)、許可界限或與 IAM 主體相關聯之工作階段政策的限制。

如果您在請求者的 IAM 政策中使用條件與內容索引鍵，則某些條件可能會導致請求失敗。如需 IAM 政策條件所引起常見陷阱的詳細資訊，請參閱 [請求跨區域資料庫快照複本](USER_CopySnapshot.md#USER_CopySnapshot.AcrossRegions.Policy)。

## 複製資料庫快照
<a name="custom-copying-snapshot-sqlserver.CopyingDBSnapshot"></a>

使用以下程序來複製資料庫快照。對於每個 AWS 帳戶，您一次最多可將 20 個資料庫快照從一個 AWS 區域 複製到另一個。如果您將資料庫快照複製到另一個快照 AWS 區域，您可以建立保留在該快照中的手動資料庫快照 AWS 區域。從來源複製資料庫快照 AWS 區域 會產生 Amazon RDS 資料傳輸費用。如需資料傳輸定價的詳細資訊，請參閱 [Amazon RDS 定價](https://aws.amazon.com/rds/pricing/)。

在新的 中建立資料庫快照複本之後 AWS 區域，資料庫快照複本的行為會與其中的所有其他資料庫快照相同 AWS 區域。

您可以使用 AWS 管理主控台 AWS CLI或 Amazon RDS API 複製資料庫快照。

------
#### [ Console ]

下列程序會使用 AWS 管理主控台來複製 RDS Custom for SQL Server 資料庫快照。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Snapshots** (快照)。

1. 選取您要複製的 RDS Custom for SQL Server 資料庫快照。

1. 在**動作**下拉式清單中，選擇**複製快照**。  
![\[Amazon RDS 主控台中的複製快照頁面。設定會載入頁面。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/XRSC-Snapshot-Copy.png)

1. 若要將資料庫快照複製到不同的 AWS 區域，請將**目的地區域**設定為所需的值。
**注意**  
目的地 AWS 區域 必須具有與來源相同的資料庫引擎版本 AWS 區域。

1. 在**新資料庫快照識別符**中，輸入資料庫快照的唯一名稱。您可以製作自動備份或手動快照的多個複本，但每個複本都必須具有唯一的識別符。

1. (選用) 選取 **Copy Tags (複製標籤)**，將快照中的標籤和值複製到快照的複本。

1. 在**加密**中，指定用來加密資料庫快照複本的 KMS 金鑰識別符。
**注意**  
RDS Custom for SQL Server 會加密所有資料庫快照。您無法建立未加密的資料庫快照。

1. 選擇 **Copy Snapshot (複製快照)**。

RDS Custom for SQL Server 會在您選取的 AWS 區域 中建立資料庫執行個體的資料庫快照複本。

------
#### [ AWS CLI ]

您可以使用 AWS CLI 命令 複製 RDS Custom for SQL Server 資料庫快照[https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html)。如果您要將快照複製到新的 AWS 區域，請在新的 中執行 命令 AWS 區域。下列選項用來複製資料庫快照。並非所有情況需要使用所有選項。
+ `--source-db-snapshot-identifier` ‐ 來源資料庫快照的識別符。
  + 如果來源快照位於 AWS 區域 與複本不同的 中，請指定有效的資料庫快照 ARN。例如 `arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678`。
+ `--target-db-snapshot-identifier` – 資料庫快照之新複本的識別符。
+ `--kms-key-id` – 加密資料庫快照的 KMS 金鑰識別符。KMS 金鑰識別碼是 KMS 金鑰的 Amazon 資源名稱 (ARN)、金鑰識別碼或金鑰別名。
  + 如果您將加密的快照複製到不同的 AWS 區域，則必須指定目的地 AWS 區域的 KMS 金鑰。KMS 金鑰專屬於在 中建立 AWS 區域 的 ，除非使用多區域金鑰， AWS 區域 否則您無法在另一個 AWS 區域 中使用加密金鑰。如需多區域 KMS 金鑰的詳細資訊，請參閱[使用 AWS KMS中的多區域金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。
+ `--copy-tags` – 包含從來源快照到快照複本的標籤和值。

複製 RDS Custom for SQL Server 資料庫快照時不支援下列選項：
+ `--copy-option-group `
+ `--option-group-name`
+ `--pre-signed-url`
+ `--target-custom-availability-zone`

下列程式碼範例會在 US East (N. Virginia) 區域中，從美國西部 (奧勒岡) 區域複製到已加密的資料庫快照。在目的地 (us-east-1) 區域中執行命令。

針對 Linux、macOS 或 Unix：

```
aws rds copy-db-snapshot \
     --region us-east-1 \
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 \
    --target-db-snapshot-identifier mydbsnapshotcopy \
    --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
```

針對 Windows：

```
aws rds copy-db-snapshot ^
     --region us-east-1 ^
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 ^
    --target-db-snapshot-identifier mydbsnapshotcopy ^
    --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
```

------
#### [ RDS API ]

您可以使用 Amazon RDS API 作業 [CopyDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBSnapshot.html) 來複製 RDS Custom for SQL Server 資料庫快照。如果您要將快照複製到新的 AWS 區域，請在新的 AWS 區域中執行此動作。下列參數用來複製資料庫快照。並非所有參數皆為必要參數：
+ `SourceDBSnapshotIdentifier` ‐ 來源資料庫快照的識別符。
  + 如果來源快照位於 AWS 區域 與複本不同的 中，請指定有效的資料庫快照 ARN。例如 `arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678`。
+ `TargetDBSnapshotIdentifier` – 資料庫快照之新複本的識別符。
+ `KmsKeyId` – 加密資料庫快照的 KMS 金鑰識別符。KMS 金鑰識別碼是 KMS 金鑰的 Amazon 資源名稱 (ARN)、金鑰識別碼或金鑰別名。
  + 如果您將加密的快照複製到不同的 AWS 區域，則必須指定目的地 AWS 區域的 KMS 金鑰。KMS 金鑰專屬於在 中建立 AWS 區域 的 ，除非使用多區域金鑰， AWS 區域 否則您無法在另一個 AWS 區域 中使用加密金鑰。如需多區域 KMS 金鑰的詳細資訊，請參閱[使用 AWS KMS中的多區域金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。
+ `CopyTags` – 將此參數設為 `true`，將來源快照中的標籤和值複製到快照的複本。預設值為 `false`。

複製 RDS Custom for SQL Server 資料庫快照時，不支援下列選項：
+ `CopyOptionGroup`
+ `OptionGroupName`
+ `PreSignedUrl`
+ `TargetCustomAvailabilityZone`

下列程式碼會在 US East (N. Virginia) 區域中使用新名稱 `mydbsnapshotcopy` 來建立快照的複本。

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CopyDBSnapshot
    &KmsKeyId=a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
    &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Asnapshot%3Ainstance1-snapshot-12345678
    &TargetDBSnapshotIdentifier=mydbsnapshotcopy
    &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
```

------