ページの先頭行へ戻る
Enterprise Postgres 15 クラスタ運用ガイド(データベース多重化編)

2.5.2 スタンバイサーバのインスタンスの作成・設定・登録

スタンバイサーバのインスタンスの作成・設定・登録について、説明します。

参照

  • 各パラメータの詳細については、“付録A パラメータ”を参照してください。

  • mc_ctlコマンドの詳細は、“リファレンス”を参照してください。

以下の手順で行います。

  1. カーネルパラメータの設定を行います。

    詳細は“導入ガイド(サーバ編)”の“カーネルパラメータの設定”を参照してください。

  2. 透過的データの暗号化機能を利用する場合は、格納データの暗号化の設定を行います。

    詳細は、“運用ガイド”の“透過的データ暗号化による格納データの保護”または“鍵管理システムをキーストアとして使用する場合の透過的データ暗号化の運用”を参照して、設定してください。

  3. pg_basebackupコマンドを実行して、スタンバイサーバにプライマリサーバのインスタンスの複製を作成します。

    例)
    $ pg_basebackup -D /database/inst1 -X fetch --waldir=/transaction/inst1 --progress --verbose -R --dbname='application_name=スタンバイサーバ名' -h プライマリサーバのIPアドレス -p プライマリサーバのポート番号

    注意

    • pg_basebackupコマンドには、-Rオプションを指定して実行し、standby.signalファイルを作成してください。standby.signalファイルを作成しない場合、Mirroring Controllerはスタンバイサーバとして起動できません。

    • プライマリサーバへの接続がパスワード認証を必要とする方式の場合、自動で認証が行われるようにしておく必要があります。pg_basebackupコマンドの-Rオプションを指定し、--dbnameオプションにpasswordパラメータを指定すると、pg_basebackupコマンドによりpostgresql.auto.confファイルのprimary_conninfoパラメータにパスワードが設定されて自動的に接続できるようになります。

      postgresql.auto.confファイルのprimary_conninfoパラメータにパスワードを設定しない場合は、インスタンス管理者ユーザーのホームディレクトリに.pgpassファイルを作成してreplicationデータベースに対するパスワードを設定してください。

    • primary_conninfoパラメータは、postgresql.confファイルには設定せず、pg_basebackupコマンドを使用してpostgresql.auto.confファイルのみに設定してください。

    • pg_basebackupコマンドの実行中に行われるトランザクションログファイルの収集において、考慮が必要な場合があります。

      • -Xオプションにfetchを指定してコマンドを実行する場合

        トランザクションログをバックアップの最後に収集する動作を指定して本コマンドを実行する場合は、バックアップ中に発生したトランザクションログがプライマリサーバで削除されないようにすることが必要です。そのため、postgresql.confファイルのwal_keep_sizeパラメータには十分な値を考慮して設定してください。

      • -Xオプションの省略や-Xオプションにstreamを指定してコマンドを実行する場合

        トランザクションログをストリームする動作を指定して本コマンドを実行すると、プライマリサーバでMirroring Controllerが起動している場合には、本コマンドによるストリーミングレプリケーションの接続を検知した契機で、接続を同期スタンバイサーバに変更してしまいます。そのため、プライマリサーバで業務を開始している場合にはそれらに影響を与えるため、プライマリサーバのMirroring Controllerプロセスのみを停止してから本コマンドを実行してください。

    参照

    standby.signalファイルの詳細については、“PostgreSQL Documentation”の“Hot Standby”を参照してください。

  4. postgresql.confファイルに以下のパラメータを設定します。

    表2.5 設定するパラメータ

    パラメータ

    指定内容

    備考

    synchronous_standby_names

    'プライマリサーバ名'

    プライマリサーバを切り替えたあとに、旧プライマリサーバを新しくスタンバイサーバとして組み込んだときに必要です。

    Mirroring Controller起動中は、本パラメータを変更しないでください。

    Mirroring Controllerが管理できるスタンバイサーバは1つであるため、本パラメータに複数の名前を指定しないでください。