範例:搭配使用邏輯複寫與 Aurora 資SQL料庫叢集 - Amazon Aurora

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

範例:搭配使用邏輯複寫與 Aurora 資SQL料庫叢集

下列程序說明如何在兩個 Aurora Postgre SQL 資料庫叢集之間啟動邏輯複寫。發佈者和訂閱者都必須針對邏輯複寫進行設定,如 為您的 Aurora SQL 資料庫叢集設定邏輯複寫 中所述。

作為指定發行者的 Aurora Postgre SQL 資料庫叢集也必須允許存取複寫插槽。若要這麼做,請根據 Amazon VPC 服務修改與 Aurora Postgre SQL 資料庫叢集虛擬公有雲 (VPC) 關聯的安全群組。將與訂閱者相關聯的安全性群組新增VPC至發行者的安全性群組,以允許輸入存取。如需詳細資訊,請參閱 Amazon 使用VPC者指南中的使用安全群組控制資源流量

完成這些初步步驟後,您可以在發行者和訂閱者CREATE SUBSCRIPTION上使用 Postgre SQL 命令CREATE PUBLICATION,如下列程序所述。

啟動兩個 Aurora SQL 資料庫叢集之間的邏輯複寫程序

這些步驟假設您的 Aurora Postgre 資料SQL庫叢集具有一個寫入器執行個體,其中包含可在其中建立範例表格的資料庫。

  1. 在發布者 Aurora 後SQL數據庫集群

    1. 使用下面的SQL語句創建一個表。

      CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
    2. 使用下列SQL陳述式將資料插入發行者資料庫。

      INSERT INTO LogicalReplicationTest VALUES (generate_series(1,10000));
    3. 使用下列SQL陳述式確認資料表中是否存在資料。

      SELECT count(*) FROM LogicalReplicationTest;
    4. 使用 CREATE PUBLICATION 陳述式建立此資料表的發佈,如下所示。

      CREATE PUBLICATION testpub FOR TABLE LogicalReplicationTest;
  2. 在訂閱者 Aurora 後SQL資料庫叢集

    1. 在訂閱者上建立您已在發佈者上建立的相同 LogicalReplicationTest 資料表,如下所示。

      CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
    2. 驗證此資料表是否為空的。

      SELECT count(*) FROM LogicalReplicationTest;
    3. 建立訂閱以從發佈者取得變更。您需要使用有關發行者 Aurora Postgre 資SQL料庫叢集的下列詳細資料。

      • 主機 — 發行者 Aurora Postgre SQL 資料庫叢集的寫入器資料庫執行個體。

      • port – 寫入器資料庫執行個體正在聆聽的連接埠。波斯特格雷的預設值SQL為 5432。

      • dbname – 資料庫的名稱。

      CREATE SUBSCRIPTION testsub CONNECTION 'host=publisher-cluster-writer-endpoint port=5432 dbname=db-name user=user password=password' PUBLICATION testpub;
      注意

      指定此處所顯示提示以外的密碼,作為安全最佳實務。

      建立訂閱後,發佈者會建立一個邏輯複寫槽。

    4. 若要確認此範例是否已在訂戶上複製初始資料,請在訂戶資料庫上使用下列SQL陳述式。

      SELECT count(*) FROM LogicalReplicationTest;

發佈者發生的任何其他變更會被複寫到訂閱者。

邏輯複寫會影響效能。建議您在複寫任務完成後關閉邏輯複寫。