本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:搭配 Aurora PostgreSQL 資料庫叢集使用邏輯複寫
下列程序說明如何在兩個 Aurora PostgreSQL 資料庫叢集之間啟動邏輯複寫。發佈者和訂閱者都必須針對邏輯複寫進行設定,如 針對 Aurora PostgreSQL 資料庫叢集設定邏輯複寫 中所述。
作為指定發佈者的 Aurora PostgreSQL 資料庫叢集也必須允許存取複寫槽。若要這麼做,請根據 Amazon VPC 服務,修改與 Aurora PostgreSQL 資料庫叢集之虛擬公有雲端 (VPC) 相關聯的安全群組。將與訂閱者 VPC 相關聯的安全群組新增至發佈者的安全群組,以允許傳入存取。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的使用安全群組控制到資源的流量。
完成這些初步步驟後,您可以在發佈者上使用 PostgreSQL 命令 CREATE
PUBLICATION,以及在訂閱者上使用 CREATE SUBSCRIPTION,如下列程序所述。
在兩個 Aurora PostgreSQL 資料庫叢集之間啟動邏輯複寫程序
這些步驟假設您的 Aurora PostgreSQL 資料庫叢集具有一個寫入器執行個體,其中包含可在其中建立範例資料表的資料庫。
-
在發佈者 Aurora PostgreSQL 資料庫叢集上
-
使用下列 SQL 陳述式建立資料表。
CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY); -
使用下列 SQL 陳述式,將資料插入發佈者資料庫。
INSERT INTO LogicalReplicationTest VALUES (generate_series(1,10000)); -
使用下列 SQL 陳述式,驗證資料是否存在於資料表中。
SELECT count(*) FROM LogicalReplicationTest; -
使用
CREATE PUBLICATION陳述式建立此資料表的發佈,如下所示。CREATE PUBLICATION testpub FOR TABLE LogicalReplicationTest;
-
-
在訂閱者 Aurora PostgreSQL 資料庫叢集上
-
在訂閱者上建立您已在發佈者上建立的相同
LogicalReplicationTest資料表,如下所示。CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY); -
驗證此資料表是否為空的。
SELECT count(*) FROM LogicalReplicationTest; -
建立訂閱以從發佈者取得變更。您必須使用有關發佈者 Aurora PostgreSQL 資料庫叢集的下列詳細資訊。
-
host – 發佈者 Aurora PostgreSQL 資料庫叢集的寫入器資料庫執行個體。
-
port – 寫入器資料庫執行個體正在聆聽的連接埠。PostgreSQL 的預設值為 5432。
-
dbname – 資料庫的名稱。
CREATE SUBSCRIPTION testsub CONNECTION 'host=publisher-cluster-writer-endpointport=5432 dbname=db-nameuser=userpassword=password' PUBLICATION testpub;注意
指定此處所顯示提示以外的密碼,作為安全最佳實務。
建立訂閱後,發佈者會建立一個邏輯複寫槽。
-
-
對於本範例,若要驗證初始資料已複寫在訂閱者上,請對訂閱者資料庫使用下列 SQL 陳述式。
SELECT count(*) FROM LogicalReplicationTest;
-
發佈者發生的任何其他變更會被複寫到訂閱者。
邏輯複寫會影響效能。建議您在複寫任務完成後關閉邏輯複寫。