スタンバイサーバのセットアップについて、説明します。
注意
大きなデータベースのスタンバイサーバを作成するときには、業務システムの運用を停止するか、wal_keep_segmentsパラメータに大きい値を指定してください。
pg_basebackupコマンドによってバックアップデータを取得したあとからスタンバイサーバの起動までに発生したWALはプライマリサーバで保持される必要がありますが、保持できるWALセグメントの数がwal_keep_segmentsパラメータで制約されるためです。
また、wal_keep_segmentsパラメータの設定には、データベース多重化運用を安定化させるために考慮することがあります。詳細は、“6.10.1 データベース多重化運用を安定させるためのチューニング”を参照してください。
以下の手順で行います。
スタンバイサーバにログインします。
データベース多重化機能で必要なファイルを格納するMirroring Controller管理ディレクトリを作成します。
Mirroring Controller管理ディレクトリは、半角空白以外のASCII文字で指定してください。また、インスタンス管理者ユーザーに対する書き込み権限を付与してください。
プライマリサーバのnetwork.confファイルをコピーして配置します。
プライマリサーバのセットアップで定義したnetwork.confファイルをコピーして、スタンバイサーバのMirroring Controller管理ディレクトリ配下に配置します。
インスタンス管理者ユーザーにのみ読み込み権限を設定してください。インスタンス管理者ユーザー以外にアクセス権限が与えられていた場合には、mc_ctlコマンドは動作しません。これにより、インスタンス管理者以外がMirroring Controllerを操作することを防止します。
WebAdminのように/etc/servicesファイルを用いて空きポート番号を検索して使用するプログラムが存在するため、network.confファイルに指定したスタンバイサーバ側のポート番号を/etc/servicesファイルに登録してください。
なお、サービス名は、任意の名前で登録してください。
プライマリサーバのサーバ識別子.confファイルをコピーして配置します。
プライマリサーバのセットアップで定義したサーバ識別子.confファイルをコピーして、スタンバイサーバのMirroring Controller管理ディレクトリ配下に配置します。
インスタンス管理者ユーザーにのみ読み込み権限を設定してください。インスタンス管理者ユーザー以外にアクセス権限が与えられていた場合には、mc_ctlコマンドは動作しません。
Mirroring Controllerのプロセスを起動します。
プライマリサーバのMirroring Controllerのプロセスが起動していることを確認したあと、起動してください。
インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードでfオプションを指定して実行します。これにより、自動切り替え/切り離しの有効化を行います。
なお、fオプションを指定せずに起動した場合、自動切り替え/切り離しは有効になりません。有効にするには、Mirroring Controllerを起動したあとにmc_ctlコマンドをenable-failoverモードで実行するか、fオプションを指定してMirroring Controllerを再起動してください。
例)
$ mc_ctl start -M /mcdir/inst1 -f
インスタンス管理者ユーザーで、mc_ctlコマンドをstartモードで実行します。
例)
$ mc_ctl start -M /mcdir/inst1
Mirroring Controllerプロセスの状態を確認します。
インスタンス管理者ユーザーでmc_ctlコマンドをstatusモードで実行します。“mirroring status”が切替可能状態(switchable)になっていることを確認してください。
例)
$ mc_ctl status -M /mcdir/inst1