プライマリサーバのデータベース多重化運用のセットアップについて、説明します。
データベース多重化機能では、動作に必要なファイルをMirroring Controller管理ディレクトリで管理します。
インスタンス1つに対して1つのMirroring Controller管理ディレクトリが対応します。
注意
Mirroring Controller管理ディレクトリは、FUJITSU Enterprise Postgresが管理するディレクトリとともに誤って削除されたり、FUJITSU Enterprise Postgresのリカバリとともに古いファイルに戻されたりすることがないようにFUJITSU Enterprise Postgresが管理するディレクトリ配下に配置しないでください。
参照
FUJITSU Enterprise Postgresが管理するディレクトリの詳細は、“導入ガイド(サーバ編)”の“セットアップ”の“資源配置用のディレクトリの準備”を参照してください。
mc_ctlコマンドの詳細は、“リファレンス”を参照してください。
セットアップで編集する各パラメータの詳細については、“付録A パラメータ”を参照してください。
以下の手順で行います。
プライマリサーバにログインします。
データベース多重化機能で必要なファイルを格納するMirroring Controller管理ディレクトリを作成します。
Mirroring Controller管理ディレクトリは、半角空白以外のASCII文字で指定してください。
また、インスタンス管理者ユーザーに対する書き込み権限を付与してください。
Mirroring Controllerのプロセス間で連携するネットワークの構成をnetwork.confファイルに定義します。
サンプルファイルをもとにして、Mirroring Controller管理ディレクトリにnetwork.confファイルを作成します。network.confファイルには、インスタンス管理者ユーザーにのみ読み込み権限を設定してください。
インスタンス管理者ユーザー以外にアクセス権限が与えられていた場合には、mc_ctlコマンドは動作しません。これにより、インスタンス管理者ユーザー以外がMirroring Controllerを操作することを防止します。
サンプルファイルのパス
/インストールディレクトリ/share/mc_network.conf.sample
network.confファイルには、プライマリサーバとスタンバイサーバのホスト名(またはIPアドレス)、およびポート番号を指定して、Mirroring Controllerのプロセス同士が連携するためのネットワークの構成を定義します。
詳細は、“A.3 ネットワーク定義ファイル”を参照ください。
以下に定義例を示します。
例) サーバ識別子に“server1”および“server2”、ポート番号に“27540”を指定している場合の例を以下に示します。
server1 192.0.2.100 27540 server2 192.0.2.110 27540
ポート番号は、プライマリサーバ、スタンバイサーバのどちらにおいても、他のソフトウェアと重ならないように設定してください。
WebAdminのように/etc/servicesファイルを用いて空きポート番号を検索して使用するプログラムが存在するため、プライマリサーバ側のポート番号を/etc/servicesファイルに登録しておいてください。
なお、サービス名は、任意の名前で登録してください。
Mirroring Controllerの監視および制御に関する情報をサーバ識別子.confファイルに定義します。
サンプルファイルをもとにして、Mirroring Controller管理ディレクトリにサーバ識別子.confファイルを作成します。サーバ識別子.confファイルには、インスタンス管理者ユーザーにのみ読み込み権限を設定してください。インスタンス管理者ユーザー以外にアクセス権限が与えられていた場合には、mc_ctlコマンドは動作しません。
サーバ識別子.confファイルのファイル名には、手順3でnetwork.confファイルに指定したサーバ識別子名を使用してください。
サンプルファイルのパス
/インストールディレクトリ/share/mc_server.conf.sample
サーバ識別子.confファイルには、以下のパラメータを設定します。
パラメータ | 指定内容 | 備考 |
---|---|---|
db_instance | 'データ格納先ディレクトリ' | 半角空白以外のASCII文字で指定してください。 |
db_instance_password | 'インスタンス管理者ユーザーのユーザー名に対応するパスワード' | Mirroring Controllerからデータベースのインスタンスへの接続設定において、パスワード認証を行う場合に指定してください。 半角空白以外のASCII文字で指定してください。 |
syslog_ident | 'プログラム名' | システムログ内のMirroring Controllerメッセージを特定するために使用するプログラム名を指定してください。半角空白以外のASCII文字で指定してください。postgresql.confファイルのパラメータと同じプログラム名にすることで、Mirroring Controllerの出力内容を透過的に参照できるため、ログの参照が容易になります。 |
heartbeat_interval | 800(ミリ秒数) | データベースプロセスを監視するため、heartbeat_intervalに指定した間隔(ミリ秒)でSELECT文を実行します。 応答がない状態となってからプライマリサーバを切り替えるなどの操作を行うまでの時間は、以下の式で計算します。 (heartbeat_timeout(秒数) + heartbeat_interval(ミリ秒)/1000)×(heartbeat_retry(回数) + 1)=(1+800/1000)×(2+1)=5.4(秒) この設定では、800ミリ秒間隔で異常を監視して、1秒間の応答がない状態が3回続いた場合にはプライマリサーバを切り替えるか、またはスタンバイサーバをプライマリサーバから切り離すかの操作を行います。 本パラメータの設定には、異常監視による縮退を最適化するために考慮することがあります。詳細は、“3.8.4 最適な異常監視による縮退運転を行うためのチューニング”を参照してください。 |
heartbeat_timeout | 1(秒数) | |
heartbeat_retry | 2(回数) |