設定 PostgreSQL 適用的 Cloud SQL 資料庫

以下各節說明如何設定 PostgreSQL 適用的 Cloud SQL 資料庫。

啟用邏輯複製功能

  1. 在 Google Cloud 控制台中前往 Cloud SQL。

  2. 開啟 Cloud SQL 執行個體,然後按一下「編輯」

  3. 前往「旗標」部分。

  4. 按一下「新增旗標」

  5. 從下拉式選單中選擇 cloudsql.logical_decoding 旗標。

  6. 將這個旗標的值設為 on

  7. 然後按一下「儲存」以儲存變更。您必須重新啟動執行個體,才能將變更更新到執行個體。

  8. 執行個體重新啟動後,請在「總覽」頁面的「資料庫旗標」下方確認變更。

建立發布作業和複製運算單元

  1. 以擁有足夠權限的使用者身分連線至資料庫,以便建立複製運算單元。如果權限不足,請執行下列指令:

    ALTER USER USER_NAME WITH REPLICATION;
    

    更改下列內容:

    • USER_NAME:要授予複製權限的使用者名稱。
  2. 建立出版品。建議您只針對要複製的資料表建立發布作業。這樣一來,Datastream 就只會讀取相關資料,並降低資料庫和 Datastream 的負載:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;

    更改下列內容:

    • PUBLICATION_NAME:出版品名稱。在 Datastream 串流建立精靈中建立串流時,您需要提供這個名稱。
    • SCHEMA:包含資料表的結構定義名稱。
    • TABLE:要複製的資料表名稱。

    您也可以為資料庫中的所有資料表建立發布作業。請注意,這種做法會增加來源資料庫和 Datastream 的負載:

    CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
    
  3. 輸入下列 SQL 指令,建立複製運算單元:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');

    更改下列內容:

    • REPLICATION_SLOT_NAME:複製運算單元的名稱。在 Datastream 串流建立精靈中建立串流時,您需要提供這個名稱。

建立 Datastream 使用者

  1. 使用 PostgreSQL 用戶端連線至資料庫。

  2. 輸入下列 PostgreSQL 指令:

    CREATE USER USER_NAME WITH REPLICATION LOGIN PASSWORD 'USER_PASSWORD';

    更改下列內容:

    • USER_NAME:要建立的 Datastream 使用者名稱。
    • USER_PASSWORD:您要建立的 Datastream 使用者登入密碼。
  3. 將下列權限授予您建立的使用者:

    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
        GRANT SELECT ON TABLES TO USER_NAME;
    

    更改下列內容:

    • SCHEMA_NAME:要授予權限的結構定義名稱。
    • USER_NAME:要授予權限的使用者。

後續步驟