ページの先頭行へ戻る
Enterprise Postgres 16 SP1 スケールアウト運用ガイド

F.7.2 レプリケーションテーブルの作成

レプリケーションテーブルを作成し、確認までを行います。DDLは、中央管理ノード(プライマリサーバ)で実行します。

詳細は“5.2 レプリケーションテーブル”を参照してください。

レプリケーションテーブルのテーブル空間領域の確保

レプリケーションテーブル用のテーブル空間の領域(ディレクトリ)は、プライマリサーバ、スタンバイサーバを含めた、すべてのノード(中央管理ノード、各データノード)で事前に作成しておく必要があります。

中央管理ノード(プライマリサーバ)でのレプリケーションテーブル用のテーブル空間の作成

中央管理ノードでテーブル空間を割り当てます。

  1. レプリケーションテーブルを作成するには、対象のノードに対して、レプリケーションオブジェクトを作成しておく必要があります。以下のSQL文で、定義されているすべてのノード(中央管理ノード、データノード)に対するレプリケーションオブジェクトを作成します。

    SELECT pgx_create_replication_object();
  2. レプリケーションテーブル用のテーブル空間をテーブル空間用作成ディレクトリに割り当てます。以下の例では、テーブル空間“repspace”を、'/home/fsepuser/replica_tablespace'に割り当てています。
    また、中央管理ノード、データノードすべてが実行対象になるように、“pgx_ddl_target_node”で'ALLNODES'を設定してからテーブル空間を作成します。ただし、レプリケーションテーブルが不要なノードが存在する場合は、“pgx_ddl_target_node”には対象のノードだけをカンマ区切りで指定します。

    SET pgx_ddl_target_node = 'ALLNODES';
    CREATE TABLESPACE repspace LOCATION '/home/fsepuser/replica_tablespace';
    RESET pgx_ddl_target_node;

中央管理ノード(プライマリサーバ)でのレプリケーションテーブルの作成

中央管理ノード(プライマリサーバ)でレプリケーションテーブルを作成します。

SET pgx_ddl_target_node = 'ALLNODES';
CREATE REPLICATION TABLE bank_info (bank_id int primary key, bank_name text ) TABLESPACE repspace;
CREATE REPLICATION TABLE branch_info (bank_id int, branch_id varchar(64) primary key, branch_name text) TABLESPACE repspace;
RESET pgx_ddl_target_node;