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

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

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

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

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

パラメータ

設定値

説明

db_instance

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

[設定例]

db_instance = '/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管理ディレクトリを指定したものとみなされます。

syslog_facility

LOCAL0、LOCAL1、LOCAL2、LOCAL3、LOCAL4、LOCAL5、LOCAL6、LOCAL7のいずれかを指定します。

syslogへのログ取得が有効である場合、このパラメータの値がsyslogの"facility"に使用されます。

デフォルトは、LOCAL0です。

syslog_ident(注1)

'プログラム名'

システムログ内のMirroring Controllerメッセージを特定するために使用するプログラム名を半角シングルクォートで囲んで指定します。半角空白以外のASCII文字で指定してください。

デフォルトは、'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の指定値の分だけ長くなります。指定回数+1回以上連続して異常を検知した場合に切り替えや切り離しを行います。

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の設定値です。

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 = '/mc/fencing_dir/execute_fencing.sh'

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

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

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

本パラメータは、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 = '/mc/arbitration_dir/execute_arbitration_command.sh'

OS/サーバの生死監視において異常を検出した場合に実行する裁定コマンドのファイルパス名を指定します。ファイルパス名は絶対パスで指定し、半角シングルクォートで囲んでください。

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

本パラメータは、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 = '/mc/status_change/execute_post_switch.sh'

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

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

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

post_attach_command

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

[設定例]

post_attach_command = '/mc/status_change/execute_post_attach.sh'

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

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

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

pre_detach_command

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

[設定例]

pre_detach_command = '/mc/status_change/execute_pre_detach.sh'

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

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

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

status_change_command_timeout

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

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

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

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

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文字で指定してください。

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

db_instance_ext_jdbc_conninfo

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

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

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

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

注2) OSのTCP接続のタイムアウト時間はカーネルパラメータtcp_syn_retriesにより決まります。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

×

×

◎:指定必須

○:指定可能

×:指定不可