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

A.4.1 データベースサーバのサーバ定義ファイル

Mirroring Controllerの監視および制御に関する情報をサーバ識別子.confファイルに定義します。サーバ識別子の最大長は、64バイトです。半角空白以外のASCII文字で指定してください。

プライマリサーバとスタンバイサーバの環境が異なる場合は、環境に合わせて異なる内容を定義してください。

表A.4 サーバ識別子.confファイル

パラメータ

設定値

説明

db_instance

'データ格納先ディレクトリ'

[設定例]

db_instance = 'D:\\database1\\inst1'

監視対象のインスタンスを特定するデータ格納先ディレクトリを半角シングルクォートで囲んで指定してください。

ASCII文字で指定してください。

パス区切り文字は\\にしてください。

target_db

postgres、template1のいずれか

データベースインスタンスに接続するデータベース名を指定します。デフォルトはpostgresです。

db_instance_username

'データベースのインスタンスへ接続するユーザー名'

データベースのインスタンスへ接続するユーザー名を指定します。

ASCII文字で指定してください。

本パラメータはデータベース管理者ユーザーとMirroring Controllerの起動を行うOSユーザーが異なる場合に指定します。

データベーススーパーユーザーを半角シングルクォートで囲んで指定してください。

ユーザー名の最大長は63バイトです。

デフォルトはMirroring Controllerの起動を行うOSユーザーです。

db_instance_password

'インスタンス管理者ユーザーのユーザー名に対応するパスワード'

Mirroring Controllerがデータベースのインスタンスへ接続するためのパスワードを半角シングルクォートで囲んで指定します。

ASCII文字で指定してください。

本パラメータは、Mirroring Controllerからデータベースのインスタンスへの接続設定において、パスワード認証を行う場合に指定が必要です。

パスワード認証を行わない場合に本パラメータを指定すると、無視されます。

本パラメータの指定値に'または\を含む場合は、それぞれ\'および\\と記載してください。

enable_hash_in_password

onまたはoff

db_instance_passwordの指定値に含まれている#をパスワードの文字とみなす場合はonを指定し、コメントとみなす場合はoffを指定します。

デフォルトはoffです。

core_file_path

'コアファイルを出力するディレクトリ'

コアファイルを出力するディレクトリを半角シングルクォートで囲んで指定します。ASCII文字で指定してください。

パス区切り文字は\\にしてください。

本パラメータを省略すると、Mirroring Controller管理ディレクトリを指定したものとみなされます。

db_instance_service_name

'Fujitsu Enterprise Postgresのインスタンスの登録サービス名'

Fujitsu Enterprise PostgresインスタンスのWindowsサービスへの登録サービス名を指定します。

半角シングルクォートで囲んでASCII文字で指定してください。

mc_service_name

'Mirroring Controllerの登録サービス名’

Mirroring ControllerのWindowsサービスへの登録サービス名を指定します。半角シングルクォートで囲んで、スラッシュ(/)と円記号(\)以外のASCII文字で指定してください。

サービス名の最大長は124バイトです。

デフォルトは、'MirroringControllerOpen'です。

event_source(注1)

'イベントソース名'

イベントログ内のMirroring Controllerメッセージを特定するのに使用されるイベントソース名を半角シングルクォートで囲んで指定します。ASCII文字で指定してください。

イベントソース名の最大長は255バイトです。

デフォルトは、'MirroringControllerOpen'です。

remote_call_timeout

管理通信のタイムアウト

Mirroring Controllerのエージェントプロセスがサーバ間で行う通信のタイムアウト値(ミリ秒)を指定します。

OSのTCP接続のタイムアウト時間(注2)よりも短くなるように0~2147483647の間の数値で指定してください。
また、Mirroring Controller裁定プロセスによる裁定処理、フェンシングコマンド、状態遷移コマンドを利用する場合は、それぞれのタイムアウト値の合計より大きな値(注3)を指定してください。

0はタイムアウトの制限がないことを示します。

デフォルトは、70000ミリ秒(70秒)です。

agent_alive_timeout

Mirroring Controllerプロセスの生死監視のタイムアウト時間(秒数)

指定された秒数以上の時間応答がない場合は、Mirroring Controllerプロセスを再起動します。

0または2~2147483647の間の数値で指定します。0を指定した場合、タイムアウトの制限がないことを示します。

デフォルトは、0秒です。

heartbeat_error_action

OS/サーバの生死監視においてハートビート異常を検出した場合の動作

arbitration:裁定サーバを利用して自動縮退を行います。

command:縮退の判断を行うユーザー出口を呼び出して自動縮退を行います。

message:メッセージを通知します。

fallback:無条件に自動縮退を行います。

デフォルトはarbitrationです。

プライマリサーバおよびスタンバイサーバで同じ設定にしてください。

heartbeat_interval

OS/サーバの生死監視における異常監視の間隔時間(ミリ秒数)

OS/サーバを監視するため、heartbeat_intervalに指定した間隔で、異常の監視を行います。

異常を検出した場合には、heartbeat_error_actionに指定した動作に従います。heartbeat_error_actionにarbitrationを指定した場合、OS/サーバの監視の異常検知時間は、裁定サーバを利用しない運用に比べ、最大でarbitration_timeoutの指定値の分だけ長くなります。

1~2147483647の間の数値で指定してください。

指定した数値はdb_instance_check_intervalとdisk_check_intervalのデフォルト値として使用されます。

デフォルトは、800ミリ秒です。

heartbeat_timeout

OS/サーバの生死監視における異常監視のタイムアウト時間(秒数)

指定された秒数以上のあいだ、応答がない場合に、プライマリサーバの切り替えやスタンバイサーバの切り離しが必要となる異常が発生したと見なします。

異常を検出した場合には、heartbeat_error_actionに指定した動作に従います。heartbeat_error_actionにarbitrationを指定した場合、OS/サーバの監視の異常検知時間は、裁定サーバを利用しない運用に比べ、最大でarbitration_timeoutの指定値の分だけ長くなります。

1~2147483647の間の数値で指定してください。

指定した数値はdb_instance_check_timeoutのデフォルト値として使用されます。

デフォルトは、1秒です。

heartbeat_retry

OS/サーバの生死監視における異常監視のリトライ回数(回数)

プライマリサーバの切り替えやスタンバイサーバの切り離しが必要となる異常を検知した場合のリトライ回数を指定します。指定回数+1回以上連続して異常を検知した場合に切り替えや切り離しを行います。

異常を検出した場合には、heartbeat_error_actionに指定した動作に従います。heartbeat_error_actionにarbitrationを指定した場合、OS/サーバの監視の異常検知時間は、裁定サーバを利用しない運用に比べ、最大でarbitration_timeoutの指定値の分だけ長くなります。

0~2147483647の間の数値で指定してください。

指定した数値はdb_instance_check_retryとdisk_check_retryのデフォルト値として使用されます。

デフォルトのリトライ回数は、2回です。

db_instance_check_interval

データベースプロセスの生死監視の間隔時間(ミリ秒数)

データベースプロセスを監視するため、db_instance_check_intervalに指定した間隔で生死監視を行います。

本パラメータの設定は、ストリーミングレプリケーションの異常監視にも使用されます。

1~2147483647の間の数値で指定してください。

デフォルトは、heartbeat_intervalの設定値です。

db_instance_check_timeout

データベースプロセスの生死監視のタイムアウト時間(秒数)

指定された秒数以上のあいだ、応答がない場合に、プライマリサーバの切り替えやスタンバイサーバの切り離しが必要となる異常が発生したと見なします。

1~2147483647の間の数値で指定してください。

デフォルトは、heartbeat_timeoutの設定値です。

db_instance_check_retry

データベースプロセスの生死監視のリトライ回数(回数)

プライマリサーバの切り替えやスタンバイサーバの切り離しが必要となる異常を検知した場合のリトライ回数を指定します。指定回数+1回以上連続して異常を検知した場合に切り替えや切り離しを行います。ただし、データベースプロセスのダウンを検知した場合は、本パラメータの設定に関わらず即時に切り替えや切り離しを行います。

本パラメータの設定は、ストリーミングレプリケーションの異常監視にも使用されます。

0~2147483647の間の数値で指定してください。

デフォルトのリトライ回数は、heartbeat_retryの設定値です。

db_instance_timeout_action

none、message、failoverのいずれか

インスタンスの無応答監視に対する振る舞いを指定します。

none: 無応答監視を行わない

message: 無応答監視を行い、異常を検知した場合はメッセージを通知する

failover: 無応答監視を行い、異常を検知した場合は自動縮退を行う

デフォルトは、failoverです。

disk_check_interval

ディスクの異常監視の間隔時間(ミリ秒数)

ディスク障害を監視するため、disk_check_intervalに指定した間隔(ミリ秒)で異常監視を行います。ファイルが作成できなかった場合は、プライマリサーバの切り替えやスタンバイサーバの切り離しが必要となる異常が発生したと見なします。

1~2147483647の間の数値で指定してください。ディスクアクセス時間より大きい値を設定してください。

デフォルトは、heartbeat_intervalの設定値です。

disk_check_retry

ディスクの異常監視のリトライ回数(回数)

プライマリサーバの切り替えやスタンバイサーバの切り離しが必要となる異常を検知した場合のリトライ回数を指定します。

指定回数+1回以上連続して異常を検知した場合に切り替えや切り離しを行います。

0~2147483647の間の数値で指定してください。

デフォルトのリトライ回数は、heartbeat_retryの設定値です。

disk_check_timeout

異常監視のタイムアウト時間 (秒数)

ディスク異常が発生した時点の次のdisk_check_intervalの開始時刻からタイムアウトによる異常と判断するまで許容する時間です。

スタンバイサーバでこのタイムアウトによるディスク異常検知時にスタンバイサーバの切り離しを行うには、

shutdown_detached_synchronous_standbyにonを設定してください。

デフォルトは2147483です。

0~2147483までの間の数値で指定可能です。

disk_check_max_threads

異常監視に利用するスレッド数の上限

ディスク監視用スレッド数の上限です。

1~2147483647までの間の数値で指定してください。

デフォルトはJVMが利用可能なプロセッサ数です。

マシンが利用可能なスレッド以上の値を設定するとシステムエラーになる可能性があります。監視プロセスとは別に、mc_ctl statusコマンドを実行する場合に、mc_ctl statusごとに監視プロセスと同じ数量のスレッドが一時的に利用されます。disk_check_max_threadsを設定する際に、マシンのスレッド上限、利用予定のテーブル空間数、および同時に実行する可能性があるmc_ctl statusコマンドの数を考慮し、設定してください。

tablespace_directory_error_action

message、またはfailover

テーブル空間の格納ディレクトリに異常を検知した場合の振る舞いを指定します。

message: メッセージを通知する

failover: 自動縮退を行う

デフォルトは、failoverです。

arbiter_alive_interval

Mirroring Controller裁定プロセスとの接続監視の間隔時間(ミリ秒数)

指定された間隔でMirroring Controller裁定プロセスに対し、ハートビートを行います。

1~2147483647の間の数値で指定してください。

デフォルトは16000ミリ秒です。

本パラメータは、裁定サーバを利用しない運用では設定不要です。

arbiter_alive_timeout

Mirroring Controller裁定プロセスとの接続監視のタイムアウト時間(秒数)

ハートビートが指定された秒数以上のあいだ応答がない場合には、Mirroring Controller裁定プロセスとの接続が切断されたと判断し、メッセージを出力して、再接続を試みます。

1~2147483647の間の数値で指定してください。

デフォルトは20秒です。

本パラメータは、裁定サーバを利用しない運用では設定不要です。

arbiter_alive_retry

Mirroring Controller裁定プロセスとの接続監視のリトライ回数(回数)

Mirroring Controller裁定プロセスとのハートビートの異常検知をした場合の、ハートビートのリトライ回数を指定します。指定された回数以上、ハートビートの応答がない場合には、Mirroring Controller裁定プロセスとの接続が切断されたと判断します。

0~2147483647の間の数値で指定してください。

デフォルトは0回です。

本パラメータは、裁定サーバを利用しない運用では設定不要です。

arbiter_connect_interval

Mirroring Controller裁定プロセスとの接続の試行間隔(ミリ秒数)

Mirroring Controllerプロセスの起動時に接続が失敗した場合、またはMirroring Controller裁定プロセスとの切断時に、指定された間隔で再接続を試行します。

1~2147483647の間の数値で指定してください。

デフォルトは16000ミリ秒です。

本パラメータは、裁定サーバを利用しない運用では設定不要です。

arbiter_connect_timeout

Mirroring Controller裁定プロセスとの接続のタイムアウト時間(秒数)

Mirroring Controllerプロセスの起動時、またはMirroring Controller裁定プロセスとの切断時の再接続時に、指定された秒数以上のあいだ接続ができない場合は、Mirroring Controller裁定プロセスとの接続に失敗したと判断し、再接続を試みます。

1~2147483647の間の数値で指定してください。

デフォルトは20秒です。

本パラメータは、裁定サーバを利用しない運用では設定不要です。

fencing_command

'フェンシングコマンドのファイルパス名'

[設定例]

fencing_command = 'c:\\mc\\fencing_dir\\execute_fencing.bat'

異常と判断したデータベースサーバをフェンシングするフェンシングコマンドのファイルパス名を指定します。

パス区切り文字は\\にしてください。

ファイルパス名は絶対パスを指定し、半角シングルクォートで囲んで指定してください。

260バイト未満の長さで指定してください。

マルチバイト文字を使用する場合、OSの文字コードと同じにしてください。

本パラメータは、heartbeat_error_actionにcommandを設定した場合は、指定必須です。

fencing_command_timeout

フェンシングコマンドのタイムアウト時間(秒数)

指定された秒数以上のあいだ、コマンドの応答がない場合は、フェンシングに失敗したと判断し、フェンシングコマンドの実行プロセスに対して、シグナル(SIGTERM)を送信します。

1~2147483647の間の数値で指定してください。

デフォルトは20秒です。

arbitration_timeout

Mirroring Controller裁定プロセスでの裁定処理のタイムアウト時間(秒数)

OS/サーバの生死監視時間である裁定定義ファイルのfencing_command_timeout以上の値を指定する必要があります。

指定された秒数以上のあいだ、応答がない場合には、プライマリサーバの切り替えやスタンバイサーバの切り離しは行われません。そのため、手動での縮退操作を行ってください。

裁定サーバのarbitration.confにheartbeat_interval、heartbeat_timeout、heartbeat_retryの値を指定している場合は、裁定サーバの値を使用してarbitration_timeoutの時間を設計してください。

1~2147483647の間の数値で指定してください。

デフォルトは30秒です。

本パラメータは、裁定サーバを利用しない運用では設定不要です。

arbitration_command

'裁定コマンドのファイルパス名'

[設定例]

arbitration_command = 'c:\\mc\\arbitration_dir\\execute_arbitration_command.bat'

OS/サーバの生死監視において異常を検出した場合に実行する裁定コマンドのファイルパス名を指定します。

パス区切り文字は\\にしてください。

ファイルパス名は絶対パスを指定し、半角シングルクォートで囲んで指定してください。

マルチバイト文字を使用する場合、OSの文字コードと同じにしてください。

260バイト未満の長さで指定してください。

本パラメータは、heartbeat_error_actionにcommandを設定した場合は、指定必須です。

arbitration_command_timeout

裁定コマンドのタイムアウト時間(秒数)

指定された秒数以上のあいだ、裁定コマンドの応答がない場合は、裁定コマンドの実行に失敗したと判断し、裁定コマンドの実行プロセスに対して、シグナル(SIGTERM)を送信します。

1~2147483647の間の数値で指定してください。

デフォルトは30秒です。

本パラメータは、heartbeat_error_actionにcommandを設定した場合のみ、指定可能です。

shutdown_detached_synchronous_standby

onまたはoff

スタンバイサーバを切り離す際にスタンバイサーバのインスタンスを強制停止させるか否かを指定します。

on: インスタンスを停止する

off: インスタンスを停止しない

onを指定し、切り離し前コマンドを作成していた場合、切り離し前コマンドを実行した後にインスタンスの停止を行います。

デフォルトは、offです。

post_switch_command

'切り替え後コマンドのファイルパス名'

[設定例]

post_switch_command = 'c:\\mc\\status_change\\execute_post_switch.bat'

プライマリサーバのフェイルオーバ時に、新プライマリサーバが昇格した後にMirroring Controllerが呼び出すコマンドのパス名を指定します。

パス区切り文字は\\にしてください。

ファイルパス名は絶対パスを指定し、半角シングルクォートで囲んで指定してください。

260バイト未満の長さで指定してください。

post_attach_command

'組み込み後コマンドのファイルパス名'

[設定例]

post_attach_command = 'c:\\mc\\status_change\\execute_post_attach.bat'

スタンバイサーバがクラスタシステムに組み込まれた後にMirroring Controllerが呼び出すコマンドのパス名を指定します。

パス区切り文字は\\にしてください。

ファイルパス名は絶対パスを指定し、半角シングルクォートで囲んで指定してください。

260バイト未満の長さで指定してください。

pre_detach_command

'切り離し前コマンドのファイルパス名'

[設定例]

pre_detach_command = 'c:\\mc\\status_change\\execute_pre_detach.bat'

スタンバイサーバがクラスタシステムから切り離される前にMirroring Controllerが呼び出すコマンドのパス名を指定します。

パス区切り文字は\\にしてください。

ファイルパス名は絶対パスを指定し、半角シングルクォートで囲んで指定してください。

260バイト未満の長さで指定してください。

status_change_command_timeout

状態遷移コマンドのタイムアウト時間(秒数)

切り替え後コマンド、組み込み後コマンド、および切り離し前コマンドのタイムアウト時間を指定します。指定された秒数以上のあいだ、コマンドの応答がない場合は、ステータス変更コマンドの実行プロセスに対して、シグナル(SIGTERM)を送信します。

タイムアウト時間は、1~2147483647の間の数値で指定します。

デフォルトは、20秒です。

enable_promote_on_os_and_admin_network_error

onまたはoff

onが指定された場合、管理用ネットワークに異常が発生し、さらにレプリケーションが切断された際に、プライマリサーバやデータベースが動作しているかを裁定サーバに確認するように依頼し、ダウンしていた場合はスタンバイサーバを昇格させます。

デフォルトは、offです。

check_synchronous_standby_names_validation

onまたはoff

postgresql.confのsynchronous_standby_namesパラメータがユーザーの誤操作により変更されたかを、Mirroring Controllerが運用中に定期的にチェックするか否かを指定します。

ただし、チェックを行うと、Mirroring ControllerがデータベースサーバのCPUを冗長に使用し、SQL文を高頻度で実行することから、本パラメータを有効にすることは推奨できません。

本パラメータは、Fujitsu Enterprise Postgres 9.6以前の動作を行う場合に指定する互換パラメータです。

デフォルトは、offです。

db_instance_ext_pq_conninfo

'データベースのインスタンスへ接続するlibpq接続SSLパラメータ'

Mirroring Controllerがデータベース接続時に追加するlibpqの接続パラメータをkey-valueの形式で指定します。指定可能な接続パラメータはSSLに関するパラメータです。パラメータはASCII文字で指定してください。

接続パラメータとしてsslmode=verify-fullを指定するなど、接続先ホスト名を使用してサーバ証明書を検証する場合、サーバ証明書のCommon Nameに記載されるホスト名をsslservercertcn接続パラメータに指定してください。sslservercertcn接続パラメータについては、“アプリケーション開発ガイド”の“アプリケーションの接続先切り替え機能”の“C言語用ライブラリ(libpq)を利用する場合”を参照してください。

db_instance_ext_jdbc_conninfoにも、本パラメータに指定した接続パラメータを指定する必要があります。

パス区切り文字は\\にしてください。

db_instance_ext_jdbc_conninfo

'データベースのインスタンスへ接続するJDBC接続SSLパラメータ'

Mirroring Controllerがデータベース接続時に追加するJDBCの接続パラメータをURI形式で指定します。指定可能な接続パラメータはSSLに関するパラメータです。パラメータはASCII文字で指定してください。

接続パラメータとしてsslmode=verify-fullを指定するなど、接続先ホスト名を使用してサーバ証明書を検証する場合、サーバ証明書のCommon Nameに記載されるホスト名をsslservercertcn接続パラメータに指定してください。sslservercertcn接続パラメータについては、“Fujitsu Enterprise Postgres アプリケーション開発ガイド”の“アプリケーションの接続先切り替え機能”の“JDBCドライバを利用する場合”を参照してください。db_instance_ext_pq_conninfoにも、本パラメータに指定した接続パラメータを指定する必要があります。

パス区切り文字は\\にしてください。

注1) postgresql.confファイルのevent_sourceパラメータの指定と似たイベントソース名にすることで、Mirroring Controllerの出力内容と透過的に参照できるため、ログの参照が容易になります。

注2) OSのTCP接続のタイムアウト時間はTCPグローバルパラメータの初期RTOと最大SYN再送信数により決まります。remote_call_timeoutパラメータはOSのTCP接続のタイムアウト時間よりも短い値を設定しなければならないため、必要に応じていずれかのパラメータを変更してください。

注3) 管理通信内では、Mirroring Controller裁定プロセスによる裁定処理、フェンシングコマンド、状態遷移コマンドが連続して実行されることがあります。そのため、remote_call_timeoutパラメータの指定値は、これらのタイムアウト値の合計より大きな値にする必要があります。heartbeat_error_actionパラメータの指定値に応じて、以下の見積式を参考にremote_call_timeoutパラメータを設定してください。

・arbitration: (arbitration_timeout + fencing_command_timeout + status_change_command_timeout) * 1000
・command : (fencing_command_timeout + status_change_command_timeout) * 1000
・message : (fencing_command_timeout + status_change_command_timeout) * 1000
・fallback : (status_change_command_timeout) * 1000

なお、管理通信内では他にも内部的な処理が行われる場合があるため、上記見積式の算出結果に安全係数(1.2程度)を乗算した値を設定してください。

また、fencing_command_timeoutパラメータについては、裁定定義ファイルではなく、データベースサーバのサーバ定義ファイルのパラメータの値を利用してください。


OS/サーバの生死監視においてハートビート異常を検出した場合の動作を設定するheartbeat_error_actionパラメータに設定した値により、一部指定可能なパラメータが異なります。

表A.5 heartbeat_error_actionパラメータの設定値によるパラメータの指定可否

パラメータ

設定値

arbitration

command

message

fallback

arbiter_alive_interval

×

×

×

arbiter_alive_timeout

×

×

×

arbiter_alive_retry

×

×

×

arbiter_connect_interval

×

×

×

arbiter_connect_timeout

×

×

×

arbitration_timeout

×

×

×

arbitration_command

×

×

×

arbitration_command_timeout

×

×

×

fencing_command

×

fencing_command_timeout

×

shutdown_detached_synchronous_standby

×

×

◎:指定必須

○:指定可能

×:指定不可