アプリケーションの接続先切り替え機能を利用する場合には、データベース接続時に、以下の情報を設定してください。
データベース多重化システムを構成するIPアドレスまたはホスト名を指定します。
各データベースサーバがアプリケーションの接続をlistenしているポート番号です。
各クライアントインタフェースでは、複数のポート番号を指定することができますが、例えば以下の形式でポート番号を1つだけ指定した場合、クライアントインタフェースよってポート番号の指定値が異なります。
host1,host2:port2
ポート番号を1つだけ指定すると、host1:27500(省略値)とhost2:port2が指定されたとみなされます。ポート番号は、すべて省略するか、サーバの個数分指定してください
ポート番号を1つだけ指定すると、すべてのポートで同じポート番号が指定されたとみなされます。
指定した接続先サーバの情報の中から、アプリケーションが接続するサーバの選択順を指定します。ターゲットサーバに指定する値は、それぞれ以下の意味です。省略した場合には、“any”になります。
指定した“IPアドレスまたはホスト名”の中から、プライマリサーバを選択して接続します。更新を伴うアプリケーションや、REINDEX や VACUUM といった管理作業のように、プライマリサーバでのみ実行可能な作業を行う場合に指定します。
指定した“IPアドレスまたはホスト名”の中から、スタンバイサーバを優先的に選択して接続します。スタンバイサーバでは更新を行うことはできません。接続先がスタンバイサーバではない場合、指定された<接続先サーバタイプ>が見つからないというメッセージが出力されます。
指定した“IPアドレスまたはホスト名”の中から、プライマリサーバを優先的に選択して接続します。プライマリサーバが存在しない場合には、スタンバイサーバに接続します。
指定した“IPアドレスまたはホスト名”の中から、スタンバイサーバを優先的に選択して接続します。スタンバイサーバが存在しない場合には、プライマリサーバに接続します。
この指定方法は、データベース多重化システムでは推奨しません。指定した“IPアドレスまたはホスト名”の中から、指定された順番に接続先を選択していきますが、最初に接続に成功したサーバがスタンバイサーバの場合には、常に書き込み操作が失敗するためです。
各ドライバごとのサーバの選択順の設定値は、以下のとおりです。
サーバの選択順 | JDBCドライバ | .NET Data Provider | 他のドライバ |
---|---|---|---|
プライマリサーバ | “primary”(注1) | “read-write”(注1) “primary”(注2) | “read-write”(注1) “primary”(注2) |
スタンバイサーバ | “secondary”(注2) | “standby” “read-only”(注2) | “standby” “read-only”(注2) |
プライマリサーバの優先 | “preferPrimary”(注3) | “prefer-primary” | - |
スタンバイサーバの優先 | “preferSecondary”(注2) | “prefer-standby” | “prefer-standby”(注4) |
任意 | “any” | “any” | “any” |
注1: デフォルトのトランザクションモードが読み取り専用のプライマリサーバは選択されません。
注2: デフォルトのトランザクションモードが読み取り専用のプライマリサーバも選択されます。
注3: デフォルトのトランザクションモードが読み書き可能なプライマリサーバが優先されます。
注4: Fujitsu Enterprise Postgres 13以前のバージョンからの互換扱いとして“prefer-standby”の代わりに“prefer-read”も指定可能ですが、推奨できません。
多重化システムの各サーバで、各サーバごとに同じサーバ証明書を作成し、SSL認証を行う場合は、サーバ証明書のCommon Nameを本パラメータに指定して接続してください。これによって、多重化システムを構成する複数のサーバ名を意識することなく、CommonNameを使用したSSL認証を行うことができます。