我試圖透過 Aurora 與 RDS 主控台,為我的 Amazon Relational Database Service (Amazon RDS) for PostgreSQL 執行個體建立 Amazon Aurora 讀取複寫,但該功能選項在 Aurora 與 RDS 主控台中顯示成灰色。
簡短描述
為了進行遷移程序,您可以使用 Amazon RDS for PostgreSQL 資料庫執行個體,透過 Aurora 讀取複寫建立新的 Amazon Aurora PostgreSQL 相容版資料庫叢集。在這種情況下,系統會建立包含讀取器執行個體的 Aurora 叢集。此叢集稱為複寫叢集,會作為 RDS for PostgreSQL 執行個體的讀取複寫使用。建立複寫叢集並將資料以零複寫延遲遷移至 Aurora 之後,您可以透過提升 Aurora 讀取複寫來執行切換。
若要為遷移程序建立 Aurora 讀取複寫,請參閱建立 Aurora 讀取複寫。
如果無法使用透過 Aurora 和 RDS 主控台建立 Aurora 讀取複寫的選項,請確認您的 Aurora PostgreSQL 版本與 RDS for PostgreSQL 版本是否相容。
解決方法
只有在相同的 AWS 區域和帳戶內進行遷移時,才能使用 Aurora 讀取複寫選項。此外,該區域必須為您的 RDS for PostgreSQL 資料庫執行個體提供相容的 Aurora PostgreSQL 版本,此選項才能使用。Aurora PostgreSQL 的版本必須與 RDS for PostgreSQL 相同,或高於同一個主要版本系列中的次要版本。
例如,若要透過此方法遷移 RDS for PostgreSQL 11.14 資料庫執行個體,區域必須提供下列其中一項:
- Aurora PostgreSQL 版本 11.14
- PostgreSQL 版本 11 系列中更高的次要版本
若要查看清單,了解可用版本和新建資料庫執行個體的預設版本,請執行 describe-db-engine-versions AWS Command Line Interface (AWS CLI) 命令:
aws rds describe-db-engine-versions --engine postgres --query DBEngineVersions[*].EngineVersion
aws rds describe-db-engine-versions --engine aurora-postgresql --query DBEngineVersions[*].EngineVersion
**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI。
您可以比較兩個命令的結果,確認 Aurora PostgreSQL 與 RDS for PostgreSQL 的引擎版本是否相容。
如果無法使用透過 Aurora 和 RDS 主控台建立讀取複寫的選項,請使用 AWS CLI 建立 Aurora 讀取複寫。
若要使用 AWS CLI,從來源 RDS for PostgreSQL 資料庫執行個體建立 Aurora 讀取複寫,請執行 create-db-cluster 命令。請務必將 replication-source-identifier 參數設定成來源執行個體的 ARN。執行此命令會建立無頭 Aurora 資料庫叢集。無頭叢集是指具有儲存空間,但沒有執行個體的叢集。
建立叢集之後,請使用 create-db-instance 命令建立資料庫叢集的主要執行個體。
aws rds create-db-cluster --db-cluster-identifier example-aurora-cluster --db-subnet-group-name example-db-subnet --vpc-security-group-ids example-security-group --engine aurora-postgresql --engine-version <same-as-your-rds-instance-version> --replication-source-identifier example-rds-source-instance-arn
aws rds create-db-instance --db-cluster-identifier example-aurora-cluster --db-instance-class example-instance-class --db-instance-identifier example-instance identifier --engine aurora-postgresql
相關資訊
Migrating data from an RDS for PostgreSQL DB instance to an Aurora PostgreSQL DB cluster using an Aurora read replica (使用 Aurora 讀取複寫將資料從 RDS for PostgreSQL 資料庫執行個體遷移至 Aurora PostgreSQL 資料庫叢集)