ページの先頭行へ戻る
Enterprise Postgres 9.5 クラスタ運用ガイド
FUJITSU Software

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

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

参照

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

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

以下の手順で行います。

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

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

  2. 格納データの暗号化の設定を行います。

    プライマリサーバのキーストア・ファイルのコピーをスタンバイサーバ側に配置します。

    詳細は、“運用ガイド”の“データベース多重化運用”を参照して、設定してください。

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

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

    注意

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

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

  4. postgresql.confファイルに以下のパラメータを設定してください。

    表3.3 設定するパラメータ

    パラメータ

    指定内容

    備考

    synchronous_standby_names

    'プライマリサーバ名'

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

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

    wal_receiver_timeout

    タイムアウト時間(ミリ秒)

    スタンバイサーバ側でのトランザクションログの受信に異常が発生したと判断する時間を指定します。サーバ識別子.confファイルの(heartbeat_interval + heartbeat_timeout×1000) × (heartbeat_retry + 1)の値と合わせることで、異常と判断する時間を統一できます。

  5. Mirroring Controllerのプロセスを起動します。

    プライマリサーバのMirroring Controllerのプロセスが起動していることを確認してから、起動します。

    自動切り替え/切り離しを有効化する場合

    インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで-fオプションを指定して実行します。これにより、自動切り替え/切り離しの有効化を行います。

    なお、-fオプションを指定せずに起動した場合、自動切り替え/切り離しは有効になりません。有効にするには、Mirroring Controllerを起動したあとにmc_ctlコマンドをenable-failoverモードで実行するか、-fオプションを指定してMirroring Controllerを再起動してください。

    例)
    $ mc_ctl start -M /mcdir/inst1 -w -f
    自動切り替え/切り離しを有効化しない場合

    インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで実行します。

    例)
    $ mc_ctl start -M /mcdir/inst1 -w
  6. Mirroring Controllerプロセスの状態を確認します。

    インスタンス管理者ユーザーでmc_ctlコマンドをstatusモードで実行します。“mirroring status”が切り替え可能状態(switchable)になっていることを確認してください。

    例)
    $ mc_ctl status -M /mcdir/inst1