以降のセクションでは、レプリケーション用に AlloyDB Omni プライマリ サーバーを構成し、レプリカ サーバーを構成して、プライマリ サーバーでレプリケーション ステータスを確認する手順について説明します。
始める前に
続行する前に、RPM パッケージを使用して AlloyDB Omni をインストールして設定します。詳細については、 RPM を使用して AlloyDB Omni をインストールするをご覧ください。
レプリケーション用にプライマリ サーバーを構成する
プライマリ サーバーのホストのネットワークまたはファイアウォールの設定を更新して、プライマリ サーバーのホストからレプリカ サーバーのホストへの上り(内向き)トラフィックがプライマリ サーバーの Postgres ポートを通過できるようにします。
レプリケーション ユーザーを作成します。
psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD'; grant pg_read_all_settings to REPLICA_USER;"プライマリ サーバーの
/DATA_DIR/pg_hba.confファイル で、ファイル内のhost all all all scram-sha-256の前 に次の行を追加します。host alloydbmetadata alloydbmetadata IP_RANGE trust host replication REPLICA_USER IP_RANGE scram-sha-256次のように置き換えます。
IP_RANGE: レプリカマシンが配置されているサブネットの IP 範囲(CIDR 表記)。例:203.0.113.0/24DATA_DIR: プライマリ サーバーのデータ ディレクトリ パス。
プライマリ サーバーを再起動します。
sudo systemctl restart alloydbomniPG_VERSION
レプリカ サーバーの作成と構成
AlloyDB Omni レプリカ サーバーを作成して構成するには、次の操作を行います。
レプリカがプライマリ サーバーとネットワーク接続していることを確認します。
ping SOURCE_IPSOURCE_IPは、レプリケート元のプライマリ AlloyDB Omni インスタンスの IP アドレスに置き換えます。レプリカがプライマリ サーバーに接続できることを確認します。
psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"出力は次のようになります。
systemid | timeline | xlogpos | dbname ---------------------+----------+-----------+-------- 7376500460465963036 | 1 | 0/454B670 | (1 row)レプリカには、ディスク上の永続ストレージ ロケーションが必要です。
pg_basebackup \ --pgdata=DATA_DIR \ --checkpoint=fast \ --host="SOURCE_IP" \ --port="SOURCE_PORT" \ --username=REPLICA_USER \ --create-slot \ --write-recovery-conf \ --slot="SLOT_NAME"次のように置き換えます。
SOURCE_PORT: レプリケート元のプライマリ AlloyDB Omni インスタンスの TCP ポート。この値を指定しない場合、AlloyDB Omni はデフォルト値5432を適用します。SLOT_NAME: レプリケーション スロットの名前のラベル。DATA_DIR: レプリカ サーバーのデータ ディレクトリ パス。
レプリカ インスタンスを起動します。
sudo systemctl start alloydbomniPG_VERSION
プライマリ サーバーでレプリケーション ステータスを確認する
レプリケーションが正しく構成されていることを確認するには、プライマリ サーバーのホストで次のコマンドを実行します。
psql -h localhost -U postgres -c "select * from pg_stat_replication"出力テーブルには、プライマリ データベース サーバーに接続されているレプリカごとに 1 行が含まれます。
レプリケーションを設定すると、プライマリ データベース サーバーの行に対するすべての挿入、更新、削除が数秒以内にレプリカで読み取り可能になります。