設定 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:您要授予權限的使用者。

後續步驟