読み取り専用レプリカを作成する

ドキュメントのバージョンを選択してください。

読み取りスループットと可用性を向上させるには、既存の AlloyDB Omni サーバーの AlloyDB Omni レプリカ サーバーを作成します。レプリカ サーバーは、プライマリ データベース サーバーの読み取り専用クローンを提供します。プライマリ サーバーのデータを反映するように、独自のデータを継続的に更新します。

以降のセクションでは、レプリケーション用に AlloyDB Omni プライマリ サーバーを構成し、レプリカ サーバーを構成して、プライマリ サーバーでレプリケーション ステータスを確認する手順について説明します。

始める前に

続行する前に、RPM パッケージを使用して AlloyDB Omni をインストールして設定します。詳細については、 RPM を使用して AlloyDB Omni をインストールするをご覧ください。

レプリケーション用にプライマリ サーバーを構成する

  1. プライマリ サーバーのホストのネットワークまたはファイアウォールの設定を更新して、プライマリ サーバーのホストからレプリカ サーバーのホストへの上り(内向き)トラフィックがプライマリ サーバーの Postgres ポートを通過できるようにします。

  2. レプリケーション ユーザーを作成します。

    psql -h localhost -U postgres -c "create user REPLICA_USER with replication password 'PASSWORD';
    grant pg_read_all_settings to REPLICA_USER;"
  3. プライマリ サーバーの /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/24
    • DATA_DIR: プライマリ サーバーのデータ ディレクトリ パス。
  4. プライマリ サーバーを再起動します。

    sudo systemctl restart alloydbomniPG_VERSION

レプリカ サーバーの作成と構成

AlloyDB Omni レプリカ サーバーを作成して構成するには、次の操作を行います。

  1. レプリカがプライマリ サーバーとネットワーク接続していることを確認します。

    ping SOURCE_IP

    SOURCE_IP は、レプリケート元のプライマリ AlloyDB Omni インスタンスの IP アドレスに置き換えます。

  2. レプリカがプライマリ サーバーに接続できることを確認します。

    psql "host=SOURCE_IP user=REPLICA_USER replication=1" -c "IDENTIFY_SYSTEM;"

    出力は次のようになります。

           systemid       | timeline |  xlogpos  | dbname
     ---------------------+----------+-----------+--------
      7376500460465963036 |        1 | 0/454B670 |
      (1 row)
    
  3. レプリカには、ディスク上の永続ストレージ ロケーションが必要です。

    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: レプリカ サーバーのデータ ディレクトリ パス。
  4. レプリカ インスタンスを起動します。

    sudo systemctl start alloydbomniPG_VERSION

プライマリ サーバーでレプリケーション ステータスを確認する

レプリケーションが正しく構成されていることを確認するには、プライマリ サーバーのホストで次のコマンドを実行します。

psql -h localhost -U postgres -c "select * from pg_stat_replication"

出力テーブルには、プライマリ データベース サーバーに接続されているレプリカごとに 1 行が含まれます。

レプリケーションを設定すると、プライマリ データベース サーバーの行に対するすべての挿入、更新、削除が数秒以内にレプリカで読み取り可能になります。