將資料遷移至與 PostgreSQL 相容的 Amazon Aurora - Amazon Aurora

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

將資料遷移至與 PostgreSQL 相容的 Amazon Aurora

若要從現有的資料庫將資料遷移至 Amazon Aurora PostgreSQL 相容版本資料庫叢集,您有幾個選項。遷移選項還取決於要遷移的資料庫以及要遷移的資料大小。以下是您的選項:

使用快照遷移 RDS for PostgreSQL 資料庫執行個體

您可以直接從 RDS for PostgreSQL 資料庫快照將資料遷移至 Aurora PostgreSQL 資料庫叢集。

使用 Aurora 僅供讀取複本遷移 RDS for PostgreSQL 資料庫執行個體

您也可以建立 RDS for PostgreSQL 資料庫執行個體的 Aurora PostgreSQL 僅供讀取複本,從 RDS for PostgreSQL 資料庫執行個體遷移。當 RDS for PostgreSQL 資料庫執行個體和 Aurora PostgreSQL 僅供讀取複本間的複本延遲為零時,您便可以停止複寫。此時,您可以將 Aurora 僅供讀取複本設為獨立 Aurora PostgreSQL 資料庫叢集,進行讀取和寫入。

將資料從 Amazon S3 匯入 Aurora PostgreSQL

您可以透過將資料從 Amazon S3 匯入到屬於 Aurora PostgreSQL 資料庫叢集的資料表中,以遷移資料。

從與 PostgreSQL 不相容的資料庫遷移

您可以使用 AWS Database Migration Service (AWS DMS) 從不兼容 PostgreSQL 的數據庫中遷移數據。如需詳細資訊 AWS DMS,請參閱什麼是資 AWS Database Migration Service?《AWS Database Migration Service 使用者指南》中。

注意

從 RDS 版移轉期間,Aurora 資料庫叢集目前不支援啟用 Kerberos PostgreSQL。您只能在獨立的 Aurora PostgreSQL 資料庫叢集上啟用 Kerberos 驗證。

如需可使用 Aurora AWS 區域 的清單,請參閱中的 Amazon Aurora AWS 一般參考

重要

如果您打算在不久的將來將 RDS for PostgreSQL 資料庫執行個體遷移至 Aurora PostgreSQL 資料庫叢集,我們強烈建議您在遷移規劃階段的早期關閉資料庫執行個體的自動次要版本升級。如果 RDS for PostgreSQL 版本尚未得到 Aurora PostgreSQL 支援,遷移至 Aurora PostgreSQL 可能會延遲。

如需 Aurora PostgreSQL 版本的相關資訊,請參閱 Amazon Aurora PostgreSQL 的引擎版本

從 RDS for PostgreSQL 資料庫執行個體快照遷移到 Aurora PostgreSQL 資料庫叢集。

若要建立 Aurora PostgreSQL 資料庫叢集,您可以遷移 RDS for PostgreSQL 資料庫執行個體的資料庫快照。新的 Aurora PostgreSQL 資料庫叢集會使用來自原始 RDS for PostgreSQL 資料庫執行個體的資料填入。如需建立資料庫快照的相關資訊,請參閱建立資料庫快照

在某些情況下,資料庫快照可能不 AWS 區域 在您想要尋找資料的位置。在這種情況下,請使用 Amazon RDS 主控台將資料庫快照複製到該 AWS 區域。如需複製資料庫快照的相關資訊,請參閱複製資料庫快照

您可以遷移與指定 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 資 PostgreSQL 照移轉至 Aurora 資料庫叢集,您可以使用 AWS Management Console AWS CLI、或 RDS API。使用時 AWS Management Console,主控台會採取建立資料庫叢集和主要執行個體所需的動作。

使用 RDS 主控台遷移 PostgreSQL 資料庫快照
  1. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

  2. 選擇 Snapshots (快照)

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

  4. 選擇 Actions (動作),然後選擇 Migrate snapshot (遷移快照)。

  5. Migrate database (遷移資料庫) 頁面上設定下列值:

    • DB engine version (資料庫引擎版本):選擇要用於新遷移執行個體的資料庫引擎版本。

    • 資料庫執行個體識別碼:輸入資料庫叢集的名稱,該名稱在您選擇的 AWS 區域 帳戶中是唯一的。此識別符用於資料庫叢集內執行個體的端點位址。您可以選擇在名稱中加入一些智慧,例如包含您選擇的 AWS 區域 和資料庫引擎aurora-cluster1

      該資料庫執行個體識別符有下列限制:

      • 他們必須包含 1–63 個英數字元或連字號。

      • 第一個字元必須是字母。

      • 不能以一個連字號結尾或是連續包含兩個連字號。

      • 對每個 AWS 中每個 AWS 區域帳戶的所有資料庫執行個體必須是唯一的。

    • DB instance class (資料庫執行個體類別):為您的資料庫選擇具有所需儲存體和容量的資料庫執行個體類別,例如 db.r6g.large。Aurora 叢集磁碟區會隨著您的資料庫中的資料數量增加自動成長。因此,您只需選擇滿足目前儲存體需求的資料庫執行個體。如需詳細資訊,請參閱 Amazon Aurora 儲存體的概觀

    • Virtual Private Cloud (VPC):如果具有現有的 VPC,您可以選取 VPC 識別符,例如 vpc-a464d1c1,將該 VPC 用於 Aurora PostgreSQL 資料庫叢集。如需有關建立 VPC 的資訊,請參閱 教學課程:建立要與資料庫叢集搭配使用的 VPC (僅限 IPv4)

      否則,您可以選擇 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 小型引擎版本升級。不適用於為維護系統穩定性而套用的一般修補程式。

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

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

使用 AWS CLI 將 RDS 資料庫快照移轉至 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令取得有關您要移轉之資料庫快照的資訊。您可以在命令中指定 --db-instance-identifier 參數或 --db-snapshot-identifier。如果您沒有指定其中一個參數,便會取得所有快照。

    aws rds describe-db-snapshots --db-instance-identifier <your-db-instance-name>
  2. 該命令會傳回從指定資料庫執行個體建立的任何快照的所有組態詳細資訊。在輸出中找到您要遷移的快照,並尋找其 Amazon 資源名稱 (ARN)。如需深入了解 Amazon RDS ARN,請參閱 Amazon Relational Database Service (Amazon RDS)。ARN 類似以下輸出。

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

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

  3. 使用 restore-db-cluster-from-snapshot 指令開始移轉。指定下列參數:

    • --db-cluster-identifier – 您要指定給 Aurora PostgreSQL 資料庫叢集的名稱。此 Aurora 資料庫叢集是資料庫快照遷移的目標。

    • --snapshot-identifier – 要遷移之資料庫快照的 Amazon 資源名稱 (ARN)。

    • --engine – 指定aurora-postgresqlAurora 資料庫叢集引擎。

    • --kms-key-id – 此選用參數可用來從未加密的資料庫快照建立加密的 Aurora PostgreSQL 資料庫叢集。也可用來為資料庫叢集選擇與用於資料庫快照的金鑰不同的加密金鑰。

      注意

      您無法從已加密的資料庫快照來建立未加密的 Aurora PostgreSQL 資料庫叢集。

    如果沒有如下所示指定的--kms-key-id參數,restore-db-cluster-from-snapshot AWS CLI 命令會建立一個空的 Aurora PostgreSQL 資料庫叢集,該叢集使用與資料庫快照相同的金鑰加密,或者如果來源資料庫快照未加密,則未加密。

    對於LinuxmacOS、或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
  4. 該命令傳回有關為遷移而建立的 Aurora PostgreSQL 資料庫叢集的詳細資訊。您可以使用指令來檢查 Aurora PostgreSQL 資料庫叢集的describe-db-clusters AWS CLI 狀態。

    aws rds describe-db-clusters --db-cluster-identifier cluster-name
  5. 當資料庫叢集變為可用時,您可以使用create-db-instance命令根據您的 Amazon RDS 資料庫快照將資料庫執行個體填入 Aurora PostgreSQL 資料庫叢集。指定下列參數:

    • --db-cluster-identifier – 上個步驟中所建立新 Aurora PostgreSQL 資料庫叢集名稱。

    • --db-instance-identifier – 要指定給資料庫執行個體的名稱。此執行個體將成為 Aurora PostgreSQL 資料庫叢集中的主節點。

    • ----db-instance-class – 指定要使用的資料庫執行個體類別。選擇您要遷移到 Aurora PostgreSQL 版本支援的哪個資料庫執行個體類別。如需詳細資訊,請參閱 資料庫執行個體類別的類型資料庫執行個體類別的支援資料庫引擎

    • --engine – 為資料庫執行個體指定 aurora-postgresql

    您也可以在create-db-instance AWS CLI 命令中傳入適當的選項,使用與來源資料庫快照不同的組態來建立資料庫執行個體。若要取得更多資訊,請參閱create-db-instance指令。

    對於LinuxmacOS、或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 叢集會有一個已填入的主要資料庫執行個體。

使用 Aurora 僅供讀取複本將資料從 RDS for PostgreSQL 資料庫執行個體遷移至 Aurora PostgreSQL 資料庫叢集

您可以將 Aurora 僅供讀取複本用於遷移過程,藉此使用 RDS for PostgreSQL 資料庫執行個體作為新 Aurora PostgreSQL 資料庫叢集的基礎。Aurora 僅供讀取複本選項僅適用於在相同帳戶內進行移轉, AWS 區域 而且只有當該區域為您的 RDS for PostgreSQL 資料庫執行個體提供相容版本的 Aurora PostgreSQL 時,才能使用此選項。相容是指 Aurora PostgreSQL 版本與 RDS for PostgreSQL 版本相同,或為相同主要版本系列中較高的次要版本。

例如,若要使用此技術來遷移 RDS for PostgreSQL 11.14 資料庫執行個體,則該區域必須提供 PostgreSQL 第 11 版系列中,Aurora PostgreSQL 11.14 版或更高的次要版本。

使用 Aurora 僅供讀取複本遷移資料的概觀

從 RDS for PostgreSQL 資料庫執行個體遷移到 Aurora PostgreSQL 資料庫叢集是多步驟程序。首先,您要建立來源 RDS for PostgreSQL 資料庫執行個體的 Aurora 僅供讀取複本。這會啟動從 RDS for PostgreSQL 資料庫執行個體複寫至特殊目的資料庫執行個體叢集 (稱為複本叢集) 的過程。複本叢集僅由 Aurora 僅供讀取複本 (讀取器執行個體) 組成。

在具有複本叢集後,您可以監控其與來源 RDS for PostgreSQL 資料庫執行個體之間的延遲。在複本延遲為零 (0) 時,您便可以提升複本叢集。複寫停止後,複本叢集會提升為獨立的 Aurora 資料庫叢集,且會將讀取器提升為叢集的寫入器執行個體。然後,您可以將執行個體新增至 Aurora PostgreSQL 資料庫叢集,以根據您的使用案例調整 Aurora PostgreSQL 執行個體叢集的規模。若不再需要,您也可以刪除 RDS for PostgreSQL 資料庫執行個體。

注意

每 TB 資料可能需要花費數小時才能完成遷移。

如果 RDS for PostgreSQL 資料庫執行個體已具有 Aurora 僅供讀取複本,或已有跨區域僅供讀取複本,您便無法建立 Aurora 僅供讀取複本。

使用 Aurora 僅供讀取複本準備遷移資料

在使用 Aurora 僅供讀取複本的遷移期間,任何對來源 RDS for PostgreSQL 資料庫執行個體所做的更新皆會以非同步方式複寫至複本叢集的 Aurora 僅供讀取複本。該過程會使用 PostgreSQL 的原生串流複寫功能,該功能會將預寫日誌 (WAL) 區段存放在來源執行個體上。在開始遷移前,請檢查表中所列指標的值,以確認您的執行個體擁有足夠的儲存容量。

指標 描述

FreeStorageSpace

可用的儲存空間。

單位:位元組

OldestReplicationSlotLag

延遲最久複本中 WAL 資料的延遲大小。

單位:MB

RDSToAuroraPostgreSQLReplicaLag

Aurora PostgreSQL 資料庫叢集落後來源 RDS 資料庫執行個體的時間長度 (以秒為單位)。

TransactionLogsDiskUsage

交易日誌使用的磁碟空間。

單位:MB

如需監控 RDS 執行個體的詳細資訊,請參閱 Amazon RDS 使用者指南中的監控

建立 Aurora 僅供讀取複本

您可以使用 AWS Management Console 或,為 RDS 版 PostgreSQL 資料庫執行個體建立 Aurora 僅供讀取複本。 AWS CLI只有在提供相容的 Aurora PostgreSQL 版本時, AWS Management Console 才能使用建立 Aurora 僅 AWS 區域 供讀取複本的選項。也就是說,僅在 Aurora PostgreSQL 版本與 RDS for PostgreSQL 版本相同,或為相同主要版本系列中較高的次要版本時才適用。

從來源 PostgreSQL 資料庫執行個體建立 Aurora 僅供讀取複本
  1. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇要作為 Aurora 僅供讀取複本來源的 RDS for PostgreSQL 資料庫執行個體。在 Actions (動作) 中選擇 Create Aurora read replica (建立僅供讀取複本)。若系統未顯示此選項,則表示相容的 Aurora PostgreSQL 版本在該區域中不適用。

    建立 Aurora 僅供讀取複本
  4. 在 Create Aurora read replica settings (建立 Aurora 僅供讀取複本設定) 頁面上,您可以設定 Aurora PostgreSQL 資料庫叢集的屬性,如下表所示。複本資料庫叢集是從來源資料庫執行個體的快照所建立,使用的「主要」使用者名稱和密碼與來源相同,因此您目前無法對其進行更改。

    選項 描述

    DB instance class (資料庫執行個體類別)

    選擇符合資料庫叢集中主要執行個體處理和記憶體要求的資料庫執行個體類別。如需詳細資訊,請參閱 Aurora 資料庫執行個體類別

    Multi-AZ deployment (異地同步備份部署)

    遷移期間不適用

    DB instance identifier (資料庫執行個體識別符):

    輸入您要指定給資料庫執行個體的名稱。此識別符用於新資料庫叢集內主要執行個體的端點位址。

    該資料庫執行個體識別符有下列限制:

    • 他們必須包含 1–63 個英數字元或連字號。

    • 第一個字元必須是字母。

    • 不能以一個連字號結尾或是連續包含兩個連字號。

    • 每個 AWS 帳戶的所有資料庫執行個體必須是唯一的 AWS 區域。

    Virtual Private Cloud (VPC)

    選擇託管資料庫叢集的 VPC。選擇 Create new VPC (建立新的 VPC) 來讓 Amazon RDS 為您建立 VPC。如需詳細資訊,請參閱 資料庫叢集先決條件

    DB subnet group (資料庫子網路群組)

    選擇要用於資料庫叢集的資料庫子網路群組。選擇 Create new DB Subnet Group (建立新的資料庫子網路群組),讓 Amazon RDS 為您建立資料庫子網路群組。如需更多詳細資訊,請參閱 資料庫叢集先決條件

    Public accessibility (公開存取性)

    選擇 Yes (是) 以給予資料庫叢集一個公有 IP 地址;否則,請選擇 No (否)。資料庫叢集內的執行個體可以混合公有和私有資料庫執行個體。如需隱藏執行個體而不提供公開存取的詳細資訊,請參閱在 VPC 中的網際網路中隱藏資料庫叢集

    Availability zone (可用區域)

    決定您是否要指定特定的可用區域。如需可用區域的詳細資訊,請參閱區域和可用區域

    VPC security groups (VPC 安全群組)

    選擇一或多個 VPC 安全群組,保護資料庫叢集的網路存取。選擇 Create new VPC security group (建立新的 VPC 安全群組),讓 Amazon RDS 為您建立 VPC 安全群組。如需更多詳細資訊,請參閱 資料庫叢集先決條件

    Database port (資料庫連接埠)

    指定應用程式和公用程式將用於存取資料庫的連接埠。Aurora PostgreSQL 資料庫叢集預設會使用 PostgreSQL 預設連接埠 5432。某些公司的防火牆會封鎖與此預設連接埠的連線。如果您的公司防火牆會封鎖預設連接埠,請為新的資料庫叢集選擇另一個連接埠。

    DB parameter group (資料庫參數群組)

    針對 Aurora PostgreSQL 資料庫叢集選擇資料庫參數群組。Aurora 有一個預設資料庫參數群組供您使用,您也可以建立自己的參數群組。如需資料庫參數群組的詳細資訊,請參閱使用參數群組

    DB cluster parameter group (資料庫叢集參數群組)

    針對 Aurora PostgreSQL 資料庫叢集選擇資料庫叢集參數群組。Aurora 有一個預設資料庫叢集參數群組供您使用,您也可以建立自己的資料庫叢集參數群組。如需資料庫叢集參數群組的詳細資訊,請參閱使用參數群組

    加密

    選擇 Enable encryption (啟用加密),以便對新的 Aurora 資料庫叢集進行靜態加密。如果您選擇 Enable encryption (啟用加密),則也必須選擇 KMS 加密金鑰作為 AWS KMS key值。

    優先順序

    選擇資料庫執行個體的容錯移轉優先順序。如果您未選擇值,則預設值為 tier-1 (第一層)。此優先順序決定從主要執行個體失敗中復原時提升 Aurora 複本的順序。如需更多詳細資訊,請參閱 Aurora 資料庫叢集的容錯能力

    Backup retention period (備份保留期間)

    選擇從 1–35 天的時間長度,Aurora 會在此時間內保留資料庫備份複本。Backup 副本可用於 point-in-time 還原資料庫 (PITR),直到第二個。

    Enhanced monitoring (增強型監控)

    選擇 Enable enhanced monitoring (啟用增強型監控),以針對資料庫叢集執行所在的作業系統即時收集指標。如需更多詳細資訊,請參閱 使用增強型監控來監控作業系統指標

    監控角色

    只有在選擇 Enable enhanced monitoring (啟用增強型監控) 時才能使用。要用於增強型監控的 AWS Identity and Access Management (IAM) 角色。如需更多詳細資訊,請參閱 設定並啟用增強型監控

    精細程度

    只有在選擇 Enable enhanced monitoring (啟用增強型監控) 時才能使用。針對資料庫叢集,設定收集指標之間的間隔 (以秒為單位)。

    Auto minor version upgrade (自動次要版本升級)

    選擇 Yes (是) 可讓 Aurora PostgreSQL 資料庫叢集自動接收可用的小型 PostgreSQL 資料庫引擎版本升級。

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

    Maintenance window (維護時段)

    選擇每週時間範圍,系統維護可在此期間進行。

  5. 選擇 Create read replica (建立僅供讀取複本)

若要使用從來源 RDS for PostgreSQL 資料庫執行個體建立 Aurora 僅供讀取複本 AWS CLI,請先使用 create-db-clusterCLI 命令建立空的 Aurora 資料庫叢集。一旦資料庫叢集存在後,您可使用create-db-instance 命令來建立資料庫叢集的主要執行個體。主要執行個體是 Aurora 資料庫叢集中第一個建立的執行個體。於此狀況下,其最初建立為 RDS for PostgreSQL 資料庫執行個體的 Aurora 僅供讀取複本。當此程序結束時,您的 RDS for PostgreSQL 資料庫執行個體已有效遷移至 Aurora PostgreSQL 資料庫叢集。

您無須指定主要使用者帳戶 (通常為 postgres)、其密碼或資料庫名稱。Aurora 僅供讀取複本會從您呼叫命令時識別的來源 RDS for PostgreSQL 資料庫執行個體自動取得這些資料庫執行個體。 AWS CLI

您確實需要指定用於 Aurora PostgreSQL 資料庫叢集和資料庫執行個體的引擎版本。您指定的版本應與來源 RDS for PostgreSQL 資料庫執行個體相符。若來源 RDS for PostgreSQL 資料庫執行個體已加密,您還需要指定 Aurora PostgreSQL 資料庫叢集主要執行個體的加密。不支援將加密的執行個體遷移至未加密的 Aurora 資料庫叢集。

下列範例建立名為 my-new-aurora-cluster 的 Aurora PostgreSQL 資料庫叢集,此將使用未加密的 RDS 資料庫來源執行個體。您要先呼叫 create-db-cluster CLI 命令來建立 Aurora PostgreSQL 資料庫叢集。範例顯示如何使用選用 --storage-encrypted 參數來指定應加密的資料庫叢集。由於來源資料庫並未加密,因此 --kms-key-id 用來指定要使用的金鑰。如需有關必要參數和選用參數的詳細資訊,請參閱範例後面的清單。

對於LinuxmacOS、或Unix:

aws rds create-db-cluster \ --db-cluster-identifier my-new-aurora-cluster \ --db-subnet-group-name my-db-subnet --vpc-security-group-ids sg-11111111 --engine aurora-postgresql \ --engine-version same-as-your-rds-instance-version \ --replication-source-identifier arn:aws:rds:aws-region:111122223333:db/rpg-source-db \ --storage-encrypted \ --kms-key-id arn:aws:kms:aws-region:111122223333:key/11111111-2222-3333-444444444444

在 Windows 中:

aws rds create-db-cluster ^ --db-cluster-identifier my-new-aurora-cluster ^ --db-subnet-group-name my-db-subnet ^ --vpc-security-group-ids sg-11111111 ^ --engine aurora-postgresql ^ --engine-version same-as-your-rds-instance-version ^ --replication-source-identifier arn:aws:rds:aws-region:111122223333:db/rpg-source-db ^ --storage-encrypted ^ --kms-key-id arn:aws:kms:aws-region:111122223333:key/11111111-2222-3333-444444444444

於下列清單中,您可找到顯示於範例中某些選項的詳細資訊。除非另有說明,否則這些參數是必需的。

  • --db-cluster-identifier – 您需要為新的 Aurora PostgreSQL 資料庫叢集指定一個名稱。

  • --db-subnet-group-name – 在與來源資料庫執行個體相同的資料庫子網路中建立您的 Aurora PostgreSQL 資料庫叢集。

  • --vpc-security-group-ids – 指定 Aurora PostgreSQL 資料庫叢集的安全群組。

  • --engine-version – 指定要用於 Aurora PostgreSQL 資料庫叢集的版本。該版本應與來源 RDS for PostgreSQL 資料庫執行個體所使用的版本相同。

  • --replication-source-identifier - 使用其 Amazon 資源名稱 (ARN) 識別 RDS for PostgreSQL 資料庫執行個體。如需 Amazon RDS ARN 的詳細資訊,請參閱您資料庫叢集之 AWS 一般參考 中的 Amazon Relational Database Service (Amazon RDS)

  • --storage-encrypted - 選用。僅在需要時使用,依如下方式指定加密:

    • 當來源資料庫執行個體具有加密儲存體時,請使用此參數。若您未將此參數用於具加密儲存體的來源資料庫執行個體,則對 create-db-cluster 的呼叫將會失敗。若要對 Aurora PostgreSQL 資料庫叢集使用與來源資料庫執行個體不同的金鑰,則還需指定 --kms-key-id

    • 若來源資料庫執行個體的儲存體未加密,但您希望 Aurora PostgreSQL 資料庫叢集使用加密,則使用此選項。若是如此,您還需要標識要與 --kms-key-id 參數一起使用的加密金鑰。

  • --kms-key-id - 選用。使用時,您可使用金鑰的 ARN、ID、別名 ARN 或其別名來指定用於儲存加密的金鑰 (--storage-encrypted)。僅於下列狀況時需要此參數:

    • 為 Aurora PostgreSQL 資料庫叢集選擇與來源資料庫執行個體使用之金鑰不同的金鑰。

    • 如要從未加密的來源建立加密叢集。於此情況下,您需要指定 Aurora PostgreSQL 應該用於加密的金鑰。

建立 Aurora PostgreSQL 資料庫叢集後,您可使用 create-db-instance CLI 命令來建立主執行個體,如下列所示:

對於LinuxmacOS、或Unix:

aws rds create-db-instance \ --db-cluster-identifier my-new-aurora-cluster \ --db-instance-class db.x2g.16xlarge \ --db-instance-identifier rpg-for-migration \ --engine aurora-postgresql

在 Windows 中:

aws rds create-db-instance ^ --db-cluster-identifier my-new-aurora-cluster ^ --db-instance-class db.x2g.16xlarge ^ --db-instance-identifier rpg-for-migration ^ --engine aurora-postgresql

於下列清單中,您可找到顯示於範例中某些選項的詳細資訊。

  • --db-cluster-identifier – 指定您在先前步驟中使用 create-db-instance 命令建立的 Aurora PostgreSQL 資料庫叢集名稱。

  • --db-instance-class – 用於主執行個體的資料庫執行個體類別名稱,例如 db.r4.xlargedb.t4g.mediumdb.x2g.16xlarge 等。如需可用的資料庫執行個體類別清單,請參閱 資料庫執行個體類別的類型

  • --db-instance-identifier – 指定主要執行個體的名稱。

  • --engine aurora-postgresql – 指定引擎的 aurora-postgresql

要從來源 RDS for PostgreSQL 資料庫執行個體建立 Aurora 僅供讀取複本,請先使用 RDS API 作業 CreateDBCluster 來建立從來源 RDS for PostgreSQL 資料庫執行個體所建立 Aurora 僅供讀取複本的新 Aurora 資料庫叢集。當 Aurora PostgreSQL 資料庫叢集可用時,您可以使用 CreateDBInstance 來建立 Aurora 資料庫叢集的主執行個體。

您無須指定主要使用者帳戶 (通常為 postgres)、其密碼或資料庫名稱。Aurora 僅供讀取複本會自動從使用 ReplicationSourceIdentifier 指定的來源 RDS for PostgreSQL 資料庫執行個體取得這些資料。

您確實需要指定用於 Aurora PostgreSQL 資料庫叢集和資料庫執行個體的引擎版本。您指定的版本應與來源 RDS for PostgreSQL 資料庫執行個體相符。若來源 RDS for PostgreSQL 資料庫執行個體已加密,您還需要指定 Aurora PostgreSQL 資料庫叢集主要執行個體的加密。不支援將加密的執行個體遷移至未加密的 Aurora 資料庫叢集。

如要建立 Aurora 僅供讀取複本的 Aurora 資料庫叢集,請使用具有下列參數的 RDS API 作業 CreateDBCluster

  • DBClusterIdentifier – 要建立的資料庫叢集名稱。

  • DBSubnetGroupName – 要與此資料庫叢集關聯之資料庫子網路群組的名稱。

  • Engine=aurora-postgresql – 要使用的引擎名稱。

  • ReplicationSourceIdentifier – 來源 PostgreSQL 資料庫執行個體的 Amazon 資源名稱 (ARN)。如需 Amazon RDS ARN 的詳細資訊,請參閱 Amazon Web Services 一般參考 中的 Amazon Relational Database Service (Amazon RDS)。若 ReplicationSourceIdentifier 標示加密來源,Amazon RDS 將使用您的預設 KMS 金鑰,除非您使用 KmsKeyId 選項指定不同的金鑰。

  • VpcSecurityGroupIds – 與此資料庫叢集關聯的 Amazon EC2 VPC 安全群組清單。

  • StorageEncrypted – 指出加密的資料庫叢集。當您使用此參數而不指定 ReplicationSourceIdentifier 時,Amazon RDS 會使用您的預設 KMS 金鑰。

  • KmsKeyId – 加密叢集的金鑰。使用時,您可使用金鑰的 ARN、ID、別名 ARN 或其別名來指定用於儲存加密的金鑰。

如需更多資訊,請參閱 Amazon RDS API 參考中的 CreateDBCluster

當 Aurora 資料庫叢集可用後,您可使用 CreateDBInstance RDS API 作業,搭配下列參數來建立資料庫叢集的主要執行個體:

  • DBClusterIdentifier – 資料庫叢集的名稱。

  • DBInstanceClass – 要用於主要執行個體的執行個體類別名稱。

  • DBInstanceIdentifier – 主要執行個體的名稱。

  • Engine=aurora-postgresql – 要使用的引擎名稱。

如需更多資訊,請參閱 Amazon RDS API 參考中的 CreateDBInstance

提升 Aurora 僅供讀取複本

在完整遷移至 Aurora PostgreSQL 之前必須先提升複本叢集,因此目前請勿刪除 RDS for PostgreSQL 來源資料庫執行個體。

在提升複本叢集之前,請確認 RDS for PostgreSQL 資料庫執行個體沒有任何進行中的交易或其他寫入資料庫的活動。在 Aurora 僅供讀取複本上的複本延遲為零 (0) 時,您便可以提升複本叢集。如需有關監控複本延遲的詳細資訊,請參閱 監控 Aurora PostgreSQL 複寫Amazon Aurora 的執行個體層級指標

將 Aurora 僅供讀取複本提升為 Aurora 資料庫叢集
  1. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇複本叢集。

    將複本叢集提升至完整的 Aurora PostgreSQL 資料庫叢集狀態
  4. 針對 Actions (動作),選擇 Promote (提升)。這可能需要幾分鐘的時間,並可能導致停機。

該過程完成時,Aurora 複本叢集會成為區域 Aurora PostgreSQL 資料庫叢集,具有包含來自 RDS for PostgreSQL 資料庫執行個體資料的寫入器執行個體。

若要將 Aurora 僅供讀取複本升級為獨立資料庫叢集,請使用promote-read-replica-db-cluster AWS CLI 命令。

範例

對於LinuxmacOS、或Unix:

aws rds promote-read-replica-db-cluster \ --db-cluster-identifier myreadreplicacluster

在 Windows 中:

aws rds promote-read-replica-db-cluster ^ --db-cluster-identifier myreadreplicacluster

若要將 Aurora 僅供讀取複本升級為獨立資料庫叢集,請使用 RDS API 作業「資料PromoteReadReplica庫叢集」。

在您提升複本叢集後,便可以透過檢查事件日誌來確認已完成提升,如下所示。

確認 Aurora 複本叢集已提升
  1. 登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Events (事件)

  3. 請在 Events (事件) 頁面上,找到 Source (來源) 清單中的叢集名稱。每個事件都有來源、類型、時間和訊息。您可以看到在 AWS 區域 中您的帳戶已發生的所有事件。成功提升會產生以下訊息。

    Promoted Read Replica cluster to a stand-alone database cluster.

提升完成後,來源 RDS for PostgreSQL 資料庫執行個體與 Aurora PostgreSQL 資料庫叢集之間的連結便會取消。您可以將用戶端應用程式導向 Aurora 僅供讀取複本的端點。如需 Aurora 端點的詳細資訊,請參閱 Amazon Aurora 連線管理。此時,如果您便可安全地刪除資料庫執行個體。