

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

# 從 RDS for PostgreSQL 資料庫執行個體快照遷移到 Aurora PostgreSQL 資料庫叢集。
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console"></a>

若要建立 Aurora PostgreSQL 資料庫叢集，您可以遷移 RDS for PostgreSQL 資料庫執行個體的資料庫快照。新的 Aurora PostgreSQL 資料庫叢集會使用來自原始 RDS for PostgreSQL 資料庫執行個體的資料填入。如需建立資料庫快照的相關資訊，請參閱[建立資料庫快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)。

在某些情況下，資料庫快照可能不在您要尋找資料的 AWS 區域 中。在這種情況下，請使用 Amazon RDS 主控台將資料庫快照複製到該 AWS 區域。如需複製資料庫快照的相關資訊，請參閱[複製資料庫快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html)。

您可以遷移與指定 AWS 區域中提供的 Aurora PostgreSQL 版本相容的 RDS for PostgreSQL 快照。例如，您可以將 RDS for PostgreSQL 11.1 資料庫執行個體的快照遷移至美國西部 (加利佛尼亞北部) 區域 中的 Aurora PostgreSQL 11.4、11.7、11.8 或 11.9 版。您可以將 RDS for PostgreSQL 10.11 快照遷移至 Aurora PostgreSQL 10.11、10.12、10.13 和 10.14。換言之，RDS for PostgreSQL 快照必須使用與 Aurora PostgreSQL 相同或更低的次要版本。

您也可以選擇使用 AWS KMS key，為新的 Aurora PostgreSQL 資料庫叢集進行靜態加密。這個選項只適用於未加密的資料庫快照。

若要將 RDS for PostgreSQL 資料庫快照遷移至 Aurora PostgreSQL 資料庫叢集，您可以使用 AWS 管理主控台、 AWS CLI或 RDS API。當您使用 時 AWS 管理主控台，主控台會採取建立資料庫叢集和主要執行個體所需的動作。

## 主控台
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console.console"></a>

**使用 RDS 主控台遷移 PostgreSQL 資料庫快照**

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

1. 選擇 **Snapshots (快照)**。

1. 在 **Snapshots** (快照) 頁面上，選擇您要遷移至 Aurora PostgreSQL 資料庫叢集的 RDS for PostgreSQL 快照。

1. 選擇 **Actions** (動作)，然後選擇 **Migrate snapshot** (遷移快照)。

1. 在 **Migrate database** (遷移資料庫) 頁面上設定下列值：
   + **DB engine version** (資料庫引擎版本)：選擇要用於新遷移執行個體的資料庫引擎版本。
   + **資料庫執行個體識別符**：在 AWS 區域 您選擇的 中，輸入您帳戶唯一的資料庫叢集名稱。此識別符用於資料庫叢集內執行個體的端點位址。您可以選擇將一些智慧新增至名稱，例如包含您選擇的 AWS 區域 和 資料庫引擎，例如 **aurora-cluster1**。

     該資料庫執行個體識別符有下列限制：
     + 他們必須包含 1–63 個英數字元或連字號。
     + 第一個字元必須是字母。
     + 不能以一個連字號結尾或是連續包含兩個連字號。
     + 對每個 AWS 中每個 AWS 區域帳戶的所有資料庫執行個體必須是唯一的。
   + **DB instance class (資料庫執行個體類別)**：為您的資料庫選擇具有所需儲存體和容量的資料庫執行個體類別，例如 `db.r6g.large`。Aurora 叢集磁碟區會隨著您的資料庫中的資料數量增加自動成長。因此，您只需選擇滿足目前儲存體需求的資料庫執行個體。如需詳細資訊，請參閱[Amazon Aurora 儲存體的概觀](Aurora.Overview.StorageReliability.md#Aurora.Overview.Storage)。
   + **Virtual Private Cloud (VPC)**：如果具有現有的 VPC，您可以選取 VPC 識別符，例如 `vpc-a464d1c1`，將該 VPC 用於 Aurora PostgreSQL 資料庫叢集。如需有關建立 VPC 的資訊，請參閱 [教學課程：建立要與資料庫叢集搭配使用的 VPC (僅限 IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md)。

     否則，您可以選擇 **Create a new VPC** (建立新的 VPC)，選擇由 Amazon RDS 為您建立 VPC。
   + **Subnet group** (子網路群組)：如果具有現有的子網路群組，您可以選取子網路群組識別符 (例如 `gs-subnet-group1`)，搭配 Aurora PostgreSQL 資料庫叢集使用該子網路群組。
   + **Public access** (公有存取權)：選擇 **No** (否)，以指定資料庫叢集內的執行個體只能由 VPC 內的資源存取。選擇 **Yes (是)**，以指定公有網路上的資源可以存取資料庫叢集內的執行個體。
**注意**  
生產資料庫叢集可能不必位於公有子網路中，因為只有應用程式伺服器才需要存取資料庫叢集。如果資料庫叢集不必位於公有子網路中，將 **Public access** (公有存取性) 設為 **No** (否)。
   + **VPC security group** (VPC 安全群組)：選擇 VPC 安全群組以允許存取您的資料庫。
   + **Availability Zone (可用區域)**：選擇可用區域以託管 Aurora PostgreSQL 資料庫叢集的主要執行個體。若要讓 Amazon RDS 為您選擇可用區域，請選擇 **No preference** (無喜好設定)。
   + **Database port** (資料庫連接埠)：輸入要在連線至 Aurora PostgreSQL 資料庫叢集中的執行個體時使用的預設連接埠。預設值為 `5432`。
**注意**  
您可能在公司防火牆的後面，而此防火牆不允許存取預設連接埠，例如 PostgreSQL 預設連接埠 5432。在此情況下，提供公司防火牆允許的連接埠值。稍後在連線至 Aurora PostgreSQL 資料庫叢集時，請記住該連接埠值。
   + **Enable Encryption** (啟用加密)：選擇 **Enable Encryption (啟用加密)**，對新的 Aurora PostgreSQL 資料庫叢集進行靜態加密。也可以選擇 KMS 金鑰作為 **AWS KMS key**值。
   + **Auto minor version upgrade (自動小型版本升級)**：選擇 **Enable auto minor version upgrade (啟用自動小型版本升級)**，讓 Aurora PostgreSQL 資料庫叢集自動接收可用的小型 PostgreSQL 資料庫引擎版本升級。

     **Auto minor version upgrade** (自動小型版本升級) 選項僅適用於 Aurora PostgreSQL 資料庫叢集的 PostgreSQL 小型引擎版本升級。不適用於為維護系統穩定性而套用的一般修補程式。

1. 選擇 **Migrate (遷移)** 以遷移您的資料庫快照。

1. 選擇 **Databases** (資料庫)，以查看新的資料庫叢集。選擇新的資料庫叢集，以監控遷移進度。移轉完成時，叢集的狀態為 **Available** (可用)。在 **Connectivity & security** (連線與安全) 標籤上，您可以找到用於連線至資料庫叢集的主要寫入器執行個體的叢集端點。如需連線至 Aurora PostgreSQL 資料庫叢集的詳細資訊，請參閱[連接至 Amazon Aurora 資料庫叢集](Aurora.Connecting.md)。

## AWS CLI
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console.CLI"></a>

使用 AWS CLI 將 RDS for PostgreSQL 資料庫快照遷移至 Aurora PostgreSQL 需要兩個不同的 AWS CLI 命令。首先，您可以使用 `restore-db-cluster-from-snapshot` AWS CLI 命令建立新的 Aurora PostgreSQL 資料庫叢集。然後使用 `create-db-instance` 命令在新叢集中建立主資料庫執行個體以完成遷移。以下程序使用主要資料庫執行個體建立 Aurora PostgreSQL 資料庫叢集，該資料庫執行個體的組態與用於建立快照的資料庫執行個體的組態相同。

**將 RDS for PostgreSQL 資料庫快照遷移到 Aurora PostgreSQL 資料庫叢集**

1. 使用 [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 命令取得有關待遷移資料庫快照的資訊。您可以在命令中指定 `--db-instance-identifier` 參數或 `--db-snapshot-identifier`。如果您沒有指定其中一個參數，便會取得所有快照。

   ```
   aws rds describe-db-snapshots --db-instance-identifier <your-db-instance-name>
   ```

1. 該命令會傳回從指定資料庫執行個體建立的任何快照的所有組態詳細資訊。在輸出中找到您要遷移的快照，並尋找其 Amazon 資源名稱 (ARN)。如需深入了解 Amazon RDS ARN，請參閱 [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)。ARN 類似以下輸出。

   ```
   “DBSnapshotArn": "arn:aws:rds:aws-region:111122223333:snapshot:<snapshot_name>"
   ```

   此外，您也可以在輸出中找到 RDS for PostgreSQL 資料庫執行個體的組態詳細資訊，例如引擎版本、分配的儲存空間、資料庫執行個體是否加密等。

1. 使用 [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) 命令開始遷移作業。指定下列參數：
   + `--db-cluster-identifier` – 您要指定給 Aurora PostgreSQL 資料庫叢集的名稱。此 Aurora 資料庫叢集是資料庫快照遷移的目標。
   + `--snapshot-identifier` – 要遷移之資料庫快照的 Amazon 資源名稱 (ARN)。
   + `--engine` – 指定`aurora-postgresql`Aurora 資料庫叢集引擎。
   + `--kms-key-id` – 此選用參數可用來從未加密的資料庫快照建立加密的 Aurora PostgreSQL 資料庫叢集。也可用來為資料庫叢集選擇與用於資料庫快照的金鑰不同的加密金鑰。
**注意**  
您無法從已加密的資料庫快照來建立未加密的 Aurora PostgreSQL 資料庫叢集。

   如果沒有指定 `--kms-key-id` 參數 (如下所示)，[restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) AWS CLI 命令會建立一個空的 Aurora PostgreSQL 資料庫叢集，該資料庫叢集是使用與資料庫快照相同的金鑰進行加密，或者如果來源資料庫快照未加密則不進行加密。

   對於 Linux、macOS 或 Unix：

   ```
   aws rds restore-db-cluster-from-snapshot \
       --db-cluster-identifier cluster-name \
       --snapshot-identifier arn:aws:rds:aws-region:111122223333:snapshot:your-snapshot-name \
       --engine aurora-postgresql
   ```

   在 Windows 中：

   ```
   aws rds restore-db-cluster-from-snapshot ^
       --db-cluster-identifier new_cluster ^
       --snapshot-identifier arn:aws:rds:aws-region:111122223333:snapshot:your-snapshot-name ^
       --engine aurora-postgresql
   ```

1. 該命令傳回有關為遷移而建立的 Aurora PostgreSQL 資料庫叢集的詳細資訊。您可以使用 [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clussters.html) AWS CLI 命令來檢查 Aurora PostgreSQL 資料庫叢集的狀態。

   ```
   aws rds describe-db-clusters --db-cluster-identifier cluster-name
   ```

1. 當資料庫叢集變為「可用」時，您可以使用 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令，用以 Amazon RDS 資料庫快照為基礎的資料庫執行個體填入 Aurora PostgreSQL 資料庫叢集。指定下列參數：
   + `--db-cluster-identifier` – 上個步驟中所建立新 Aurora PostgreSQL 資料庫叢集名稱。
   + `--db-instance-identifier` – 要指定給資料庫執行個體的名稱。此執行個體將成為 Aurora PostgreSQL 資料庫叢集中的主節點。
   + `----db-instance-class ` – 指定要使用的資料庫執行個體類別。選擇您要遷移到 Aurora PostgreSQL 版本支援的哪個資料庫執行個體類別。如需詳細資訊，請參閱 [資料庫執行個體類別的類型](Concepts.DBInstanceClass.Types.md) 及 [資料庫執行個體類別的支援資料庫引擎](Concepts.DBInstanceClass.SupportAurora.md)。
   + `--engine` – 為資料庫執行個體指定 `aurora-postgresql`。

   您也可以在命令中傳入適當的選項，以建立具有與來源資料庫快照不同組態的資料庫執行個體`create-db-instance` AWS CLI 。如需詳細資訊，請參閱 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令。

   對於 Linux、macOS 或 Unix：

   ```
   aws rds create-db-instance \
       --db-cluster-identifier cluster-name \
       --db-instance-identifier --db-instance-class db.instance.class \
       --engine aurora-postgresql
   ```

   在 Windows 中：

   ```
   aws rds create-db-instance ^
       --db-cluster-identifier cluster-name ^
       --db-instance-identifier --db-instance-class db.instance.class ^
       --engine aurora-postgresql
   ```

遷移程序完成後，Aurora PostgreSQL 叢集會有一個已填入的主要資料庫執行個體。