本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Aurora 僅RDS供讀取複本將資料從 Postgre 資料SQL庫執行個體移轉至 Aurora Postgre 資料SQL庫叢集
您可以使用 Postgre SQL 資料庫執行個RDS體做為新 Aurora Postgre 資SQL料庫叢集的基礎,方法是在移轉程序中使用 Aurora 僅供讀取複本。Aurora 僅供讀取複本選項僅適用於相同內部的移轉 AWS 區域 和帳戶,只有在該地區SQL為您的 Postgre SQL 資料庫執行個體提供相容版本的 Aurora Postgre 時,才能使RDS用此功能。通過兼容,我們的意思是 Aurora Postgre SQL 版本與 Postgre SQL 版本相同,或者它是同一主要版本系列中的較高次要版本。RDS
例如,若要使用此技術移轉 Postgre SQL 11.14 資料庫執行個RDS體,該區域必須在 Postgre 版本 11 系列中提供 Aurora Postgre SQL 版本 11.14 或更高版本的次要版本。SQL
使用 Aurora 僅供讀取複本遷移資料的概觀
從 Postgre SQL 資料庫執RDS行個體移轉至 Aurora Postgre SQL 資料庫叢集是一個多步驟的程序。首先,您要RDS為 Postgre SQL 資料庫執行個體建立來源的 Aurora 僅供讀取複本。這會啟動從您RDS的 Postgre SQL 資料庫執行個體到稱為複本叢集的特殊用途資料庫叢集的複寫程序。複本叢集僅由 Aurora 僅供讀取複本 (讀取器執行個體) 組成。
複本叢集存在之後,您可以監視它與 Postgre SQL 資料庫執行個體RDS的來源之間的延遲。在複本延遲為零 (0) 時,您便可以提升複本叢集。複寫停止後,複本叢集會提升為獨立的 Aurora 資料庫叢集,且會將讀取器提升為叢集的寫入器執行個體。然後,您可以將執行個體新增至 Aurora Postgre SQL 資料庫叢集,針對您的使用案例調整 Aurora Postgre SQL 資料庫叢集的大小。如果您沒有進一步的需要,也可以刪除 Postgre SQL 資料庫執行個體。RDS
注意
每 TB 資料可能需要花費數小時才能完成遷移。
如果您的 Postgre SQL 資料庫執行個體已有 Aurora 僅RDS供讀取複本,或具有跨區域僅供讀取複本,則無法建立 Aurora 僅供讀取複本。
使用 Aurora 僅供讀取複本準備遷移資料
在使用 Aurora 僅供讀取複本進行移轉程序期間,RDS對 Postgre SQL 資料庫執行個體的來源所做的更新會非同步複寫到複本叢集的 Aurora 僅供讀取複本。此程序使用 Postgre SQL 的原生串流複寫功能,該功能會將預寫記錄 (WAL) 區段儲存在來源執行個體上。在開始遷移前,請檢查表中所列指標的值,以確認您的執行個體擁有足夠的儲存容量。
指標 | 描述 |
---|---|
|
可用的儲存空間。 單位:位元組 |
|
複本中滯後最多的WAL資料延遲大小。 單位:MB |
|
Aurora Postgre SQL 資料庫叢集落後於來源RDS資料庫執行個體的時間 (秒)。 |
|
交易日誌使用的磁碟空間。 單位:MB |
如需監控RDS執行個體的詳細資訊,請參閱 Amazon RDS 使用者指南中的監控。
建立 Aurora 僅供讀取複本
Aurora 可RDS以SQL使用 AWS Management Console 或 AWS CLI。 使用建立 Aurora 僅供讀取複本的選項 AWS Management Console 只有在 AWS 區域 提供了一個兼容的 Aurora 郵政SQL版本。也就是說,只有當有與 Postgre SQL 版本或者一樣的主要版本系列中的較高的次要版本相同RDS的 Aurora Postgre SQL 版本的時候,那個才可以使用。
從來源 Postgre SQL 資料庫執行個體建立 Aurora 僅供讀取複本
登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/
。 -
在導覽窗格中,選擇 Databases (資料庫)。
-
選擇您要用作 Aurora 僅RDS供讀取複本來源的 Postgre SQL 資料庫執行個體。在 Actions (動作) 中選擇 Create Aurora read replica (建立僅供讀取複本)。如果未顯示此選項,表示該地區無法使用相容的 Aurora Postgre SQL 版本。
-
在 [建立 Aurora 僅供讀取複本設定] 頁面上,您可以設定 Aurora Postgre SQL 資料庫叢集的內容,如下表所示。複本資料庫叢集是從來源資料庫執行個體的快照所建立,使用的「主要」使用者名稱和密碼與來源相同,因此您目前無法對其進行更改。
選項 描述 DB instance class (資料庫執行個體類別)
選擇符合資料庫叢集中主要執行個體處理和記憶體要求的資料庫執行個體類別。如需詳細資訊,請參閱Amazon Aurora 數據庫實例類。
Multi-AZ deployment (異地同步備份部署)
遷移期間不適用
DB instance identifier (資料庫執行個體識別符):
輸入您要指定給資料庫執行個體的名稱。此識別符用於新資料庫叢集內主要執行個體的端點位址。
該資料庫執行個體識別符有下列限制:
-
他們必須包含 1–63 個英數字元或連字號。
-
第一個字元必須是字母。
-
不能以一個連字號結尾或是連續包含兩個連字號。
-
每個執行個體的所有資料庫執行個體都必須唯一 AWS 帳戶,針對每個 AWS 區域.
虛擬私有雲 (VPC)
選擇VPC要裝載資料庫叢集的。選擇創建新VPC的讓 Amazon VPC 為您RDS創建一個。如需詳細資訊,請參閱資料庫叢集先決條件。
DB subnet group (資料庫子網路群組)
選擇要用於資料庫叢集的資料庫子網路群組。選擇建立新的資料庫子網路群組,讓 Amazon 為您RDS建立資料庫子網路群組。如需詳細資訊,請參閱資料庫叢集先決條件。
Public accessibility (公開存取性)
選擇 Yes (是) 以給予資料庫叢集一個公有 IP 地址;否則,請選擇 No (否)。資料庫叢集內的執行個體可以混合公有和私有資料庫執行個體。如需隱藏執行個體而不提供公開存取的詳細資訊,請參閱VPC 從網際網路隱藏 中的資料庫叢集。
Availability zone (可用區域)
決定您是否要指定特定的可用區域。如需可用區域的詳細資訊,請參閱 區域和可用區域。
VPC安全性群組
選擇一或多個VPC安全群組,以保護對資料庫叢集的網路存取。選擇建立新的VPC安全群組,讓 Amazon 為您RDS建立VPC安全群組。如需詳細資訊,請參閱資料庫叢集先決條件。
Database port (資料庫連接埠)
指定應用程式和公用程式將用於存取資料庫的連接埠。Aurora 後SQL資料庫叢集預設為預設的 Postgre SQL 連接埠 5432。某些公司的防火牆會封鎖與此預設連接埠的連線。如果您的公司防火牆會封鎖預設連接埠,請為新的資料庫叢集選擇另一個連接埠。
DB parameter group (資料庫參數群組)
選擇 Aurora 資料庫叢集的SQL資料庫參數群組。Aurora 有一個預設資料庫參數群組供您使用,您也可以建立自己的資料庫參數群組。如需資料庫參數群組的詳細資訊,請參閱Amazon Aurora 的參數組 RDS。
DB cluster parameter group (資料庫叢集參數群組)
為 Aurora 資料庫叢集選擇資SQL料庫叢集參數群組。Aurora 有一個預設資料庫叢集參數群組供您使用,您也可以建立自己的資料庫叢集參數群組。如需資料庫叢集參數群組的詳細資訊,請參閱Amazon Aurora 的參數組 RDS。
加密
選擇 Enable encryption (啟用加密),以便對新的 Aurora 資料庫叢集進行靜態加密。如果您選擇「啟用加密」,請同時選擇一個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 (自動次要版本升級)
選擇 [是] 可讓您的 Aurora Postgre SQL 資料庫叢集在可用時自動接收次要 Postgre SQL 資料庫引擎版本升級。
自動次要版本升級選項僅適用於升級至 Aurora Postgre SQL 資料庫叢集的 Postgre SQL 次要引擎版本。不適用於為維護系統穩定性而套用的一般修補程式。
Maintenance window (維護時段)
選擇每週時間範圍,系統維護可在此期間進行。
-
-
選擇 Create read replica (建立僅供讀取複本)。
若要從 Postgre SQL 資料庫執行個體的來源建立 Aurora 僅RDS供讀取複本,請使用 AWS CLI,您首先使用命create-db-clusterCLI令建立空的 Aurora 資料庫叢集。一旦資料庫叢集存在後,您可使用create-db-instance 命令來建立資料庫叢集的主要執行個體。主要執行個體是 Aurora 資料庫叢集中第一個建立的執行個體。在此情況下,它最初會建立為 Postgre SQL 資料庫執行個體的 Aurora 僅RDS供讀取複本。程序結束後,您RDS的 Postgre SQL 資料庫執行個體已有效地移轉至 Aurora Postgre SQL 資料庫叢集。
您無須指定主要使用者帳戶 (通常為 postgres
)、其密碼或資料庫名稱。Aurora 僅供讀取複本會自動從 Postgre SQL 資料庫執行個體RDS的來源取得這些資料庫執行個體,當您呼叫 AWS CLI 命令。
您必須指定要用於 Aurora Postgre SQL 資料庫叢集和資料庫執行個體的引擎版本。您指定的版本應與 Postgre SQL 資料庫執行個體的來源RDS相符。如果 Postgre SQL 資料庫執行個體的來源RDS已加密,您還需要為 Aurora Postgre SQL 資料庫叢集主要執行個體指定加密。不支援將加密的執行個體遷移至未加密的 Aurora 資料庫叢集。
下列範例會建立名為 Aurora Postgre SQL 資料庫叢集,my-new-aurora-cluster
該叢集將使用未加密的RDS資料庫來源執行個體。首先,您可以呼叫create-db-cluster
CLI命令來建立 Aurora Postgre SQL 資料庫叢集。範例顯示如何使用選用 --storage-encrypted
參數來指定應加密的資料庫叢集。由於來源資料庫並未加密,因此 --kms-key-id
用來指定要使用的金鑰。如需有關必要參數和選用參數的詳細資訊,請參閱範例後面的清單。
用於 Linux, macOS,或 Unix:
aws rds create-db-cluster \ --db-cluster-identifier
my-new-aurora-cluster
\ --db-subnet-group-namemy-db-subnet
--vpc-security-group-idssg-11111111
--engine aurora-postgresql \ --engine-versionsame-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-namemy-db-subnet
^ --vpc-security-group-idssg-11111111
^ --engine aurora-postgresql ^ --engine-versionsame-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 Postgre SQL 資料庫叢集命名。 -
--db-subnet-group-name
— 在與來源資料庫執行個體相同的SQL資料庫子網路中建立您的 Aurora Postgre 資料庫叢集。 -
--vpc-security-group-ids
— 為您的 Aurora Postgre SQL 資料庫叢集指定安全性群組。 -
--engine-version
— 指定要用於 Aurora SQL 資料庫叢集的版本。這應該與 Postgre SQL 資料庫執行個體的來源RDS所使用的版本相同。 -
--replication-source-identifier
— 使用其 Amazon 資源名稱 (ARN) 識別您的 RDS Postgre 資SQL料庫執行個體。有關 Amazon 的更多信息 RDSARNs,請參閱 Amazon Relational Database Service(AmazonRDS)AWS 一般參考。您的數據庫集群。 -
--storage-encrypted
- 選用。僅在需要時使用,依如下方式指定加密:當來源資料庫執行個體具有加密儲存體時,請使用此參數。若您未將此參數用於具加密儲存體的來源資料庫執行個體,則對
create-db-cluster
的呼叫將會失敗。如果您想要針對 Aurora Postgre SQL 資料庫叢集使用與來源資料庫執行個體所使用的金鑰不同的金鑰,您還需要指定--kms-key-id
.如果來源資料庫執行個體的儲存體未加密,但您希望 Aurora Postgre SQL 資料庫叢集使用加密,請使用此選項。若是如此,您還需要標識要與
--kms-key-id
參數一起使用的加密金鑰。
-
--kms-key-id
- 選用。使用時,您可以使用金鑰的、ID ARN、別名或其別ARN名來指定用於儲存加密的金鑰 (--storage-encrypted
)。僅於下列狀況時需要此參數:-
為 Aurora Postgre SQL 資料庫叢集選擇與來源資料庫執行個體所使用的金鑰不同的金鑰。
如要從未加密的來源建立加密叢集。在這種情況下,您需要指定 Aurora Postgre SQL 應該用於加密的金鑰。
-
建立 Aurora Postgre SQL 資料庫叢集之後,您可以使用create-db-instance
CLI指令建立主要執行個體,如下所示:
用於 Linux, macOS,或 Unix:
aws rds create-db-instance \ --db-cluster-identifier
my-new-aurora-cluster
\ --db-instance-classdb.x2g.16xlarge
\ --db-instance-identifierrpg-for-migration
\ --engine aurora-postgresql
用於 Windows:
aws rds create-db-instance ^ --db-cluster-identifier
my-new-aurora-cluster
^ --db-instance-classdb.x2g.16xlarge
^ --db-instance-identifierrpg-for-migration
^ --engine aurora-postgresql
於下列清單中,您可找到顯示於範例中某些選項的詳細資訊。
-
--db-cluster-identifier
— 指定您在上一個步驟中使用create-db-instance
命令建立的 Aurora Postgre SQL 資料庫叢集的名稱。 -
--db-instance-class
– 用於主執行個體的資料庫執行個體類別名稱,例如db.r4.xlarge
、db.t4g.medium
、db.x2g.16xlarge
等。如需可用的資料庫執行個體類別清單,請參閱 資料庫執行個體類別的類型。 -
--db-instance-identifier
– 指定主要執行個體的名稱。 -
--engine aurora-postgresql
– 指定引擎的aurora-postgresql
。
若要從 Postgre SQL 資料庫執行個體的來源建立 Aurora 僅RDS供讀取複本,請先使用該RDSAPI作業CreateDBCluster
為 Aurora 僅供讀取複本建立新的 Aurora 資料庫叢集,該複本是從 Postgre SQL 資料庫執行個體RDS的來源建立。當 Aurora Postgre SQL 資料庫叢集可用時,您可CreateDBInstance
以使用為 Aurora 資料庫叢集建立主要執行個體。
您無須指定主要使用者帳戶 (通常為 postgres
)、其密碼或資料庫名稱。Aurora 僅供讀取複本會從指定的 Postgre SQL 資料庫執行個體RDS的來源自動取得這些複本。ReplicationSourceIdentifier
您必須指定要用於 Aurora Postgre SQL 資料庫叢集和資料庫執行個體的引擎版本。您指定的版本應與 Postgre SQL 資料庫執行個體的來源RDS相符。如果 Postgre SQL 資料庫執行個體的來源RDS已加密,您還需要為 Aurora Postgre SQL 資料庫叢集主要執行個體指定加密。不支援將加密的執行個體遷移至未加密的 Aurora 資料庫叢集。
若要為 Aurora 僅供讀取複本建立 Aurora 資料庫叢集,請CreateDBCluster
搭配下列參數使用此RDSAPI作業:
-
DBClusterIdentifier
– 要建立的資料庫叢集名稱。 -
DBSubnetGroupName
– 要與此資料庫叢集關聯之資料庫子網路群組的名稱。 -
Engine=aurora-postgresql
– 要使用的引擎名稱。 -
ReplicationSourceIdentifier
— 來源 Postgre 資SQL料庫執行個體的 Amazon 資源名稱 (ARN)。有關 Amazon 的更多信息 RDSARNs,請參閱 Amazon Relational Database Service(AmazonRDS)Amazon Web Services 一般參考。 如果ReplicationSourceIdentifier
識別加密來源,Amazon RDS 會使用您的預設KMS金鑰,除非您使用該KmsKeyId
選項指定不同的金鑰。 -
VpcSecurityGroupIds
— 要與此資料庫叢集關聯的 Amazon EC2 VPC 安全群組清單。 -
StorageEncrypted
– 指出加密的資料庫叢集。當您使用此參數而未指定時ReplicationSourceIdentifier
,Amazon RDS 會使用您的預設KMS金鑰。 -
KmsKeyId
– 加密叢集的金鑰。使用時,您可以使用金鑰的、ID ARN、別名或其別ARN名來指定用於儲存區加密的金鑰。
如需詳細資訊,請參閱 Amazon 參RDSAPI考資料CreateDBCluster
中的。
Aurora DB 叢集可用之後,您可以使用CreateDBInstance
具有下列參數的RDSAPI作業來為其建立主要執行個體:
-
DBClusterIdentifier
– 資料庫叢集的名稱。 -
DBInstanceClass
– 要用於主要執行個體的執行個體類別名稱。 -
DBInstanceIdentifier
– 主要執行個體的名稱。 -
Engine=aurora-postgresql
– 要使用的引擎名稱。
如需詳細資訊,請參閱 Amazon 參RDSAPI考資料CreateDBInstance
中的。
提升 Aurora 僅供讀取複本
升級複本叢集之前,移轉至 Aurora Postgre SQL 才會完成,因此請勿刪除 Postgre SQL 來源資料庫執行個體。RDS
在升級複本叢集之前,請確定 of Postgre SQL 資料庫執行個體沒有任何處理中的交易或其他寫入資料庫的活動。RDS在 Aurora 僅供讀取複本上的複本延遲為零 (0) 時,您便可以提升複本叢集。如需有關監控複本延遲的詳細資訊,請參閱 監測 Aurora 後複製 SQL 和 Amazon Aurora 的執行個體層級指標。
將 Aurora 僅供讀取複本提升為 Aurora 資料庫叢集
-
登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/
。 -
在導覽窗格中,選擇 Databases (資料庫)。
-
選擇複本叢集。
-
針對 Actions (動作),選擇 Promote (提升)。這可能需要幾分鐘的時間,並可能導致停機。
程序完成時,Aurora 複本叢集是區域性 Aurora Postgre 資料SQL庫叢集,其中包含來自 Postgre 資料SQL庫執行個體的資料的RDS寫入器執行個體。
若要將 Aurora 僅供讀取複本升級為獨立資料庫叢集,請使用 promote-read-replica-db-cluster AWS CLI 指令。
範例
用於 Linux, macOS,或 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 僅供讀取複本升級為獨立資料庫叢集,請使用此RDSAPI作業PromoteReadReplicaDBCluster。
在您提升複本叢集後,便可以透過檢查事件日誌來確認已完成提升,如下所示。
確認 Aurora 複本叢集已提升
登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/
。 -
在導覽窗格中,選擇 Events (事件)。
-
請在 Events (事件) 頁面上,找到 Source (來源) 清單中的叢集名稱。每個事件都有來源、類型、時間和訊息。您可以查看發生在您的所有事件 AWS 區域 為您的帳戶。成功提升會產生以下訊息。
Promoted Read Replica cluster to a stand-alone database cluster.
升級完成後,Postgre SQL 資料庫執行個體和 Aurora Postgre 資料SQL庫叢集的來源會RDS解除連結。您可以將用戶端應用程式導向 Aurora 僅供讀取複本的端點。如需 Aurora 端點的詳細資訊,請參閱 Amazon Aurora 端點連接。此時,如果您便可安全地刪除資料庫執行個體。