以降のセクションでは、Cloud SQL for PostgreSQL データベースの構成方法について説明します。
論理レプリケーションを有効にする
Google Cloud コンソールで Cloud SQL に移動します。
Cloud SQL インスタンスを開き、[編集] をクリックします。
[フラグ] セクションに移動します。
[フラグを追加] をクリックします。
プルダウン メニューで
cloudsql.logical_decoding
フラグを選択します。フラグの値を [on] に設定します。
[保存] をクリックして、変更を保存します。インスタンスに変更を反映させるには、インスタンスを再起動する必要があります。
インスタンスを再起動したら、[概要] ページの [データベース フラグ] で変更を確認します。
パブリケーションとレプリケーション スロットを作成する
レプリケーション スロットを作成するのに十分な権限を持つユーザーとしてデータベースに接続します。そうでない場合は、次のコマンドを実行します。
ALTER USER USER_NAME WITH REPLICATION;
以下を置き換えます。
- USER_NAME: レプリケーション権限の付与先となるユーザーの名前。
パブリケーションを作成する複製するテーブルのパブリケーションのみを作成することをおすすめします。これにより、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;
次の SQL コマンドを入力して、レプリケーション スロットを作成します。
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');
以下を置き換えます。
- REPLICATION_SLOT_NAME: レプリケーション スロットの名前。 Datastream ストリーム作成ウィザードでストリームを作成するときに、この名前を指定する必要があります。
Datastream ユーザーを作成する
PostgreSQL クライアントを使用してデータベースに接続します。
次の PostgreSQL コマンドを入力します。
CREATE USER USER_NAME WITH REPLICATION LOGIN PASSWORD 'USER_PASSWORD';
以下を置き換えます。
- USER_NAME: 作成する Datastream ユーザーの名前。
- USER_PASSWORD: 作成する Datastream ユーザーのログイン パスワード。
作成したユーザーに次の権限を付与します。
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: 権限の付与先となるユーザー。
次のステップ
- Datastream が PostgreSQL ソースでどのように機能するかを確認する。