プライマリ候補サーバのインスタンスの作成・設定・登録について、説明します。
セットアップの準備作業を行います。
“導入ガイド(サーバ編)”の“セットアップの準備作業”を参照して、プライマリ候補サーバにインスタンスを作成する前の準備作業を行います。
透過的データの暗号化機能を利用する場合は、格納データの暗号化の設定を行います。
運用センタのプライマリサーバのキーストア・ファイルを待機センタのプライマリ候補サーバにコピーします。
詳細は、“運用ガイド”の“データベース多重化運用”を参照して、設定してください。
インスタンスを複製します。
pg_basebackupコマンドを実行して、待機センタのプライマリ候補サーバに運用センタのプライマリサーバのインスタンスを複製します。この時、pg_basebackupコマンドにより、各オプションに指定された運用センタのプライマリサーバへの接続情報を使用して、postgresql.auto.confファイルにprimary_conninfoパラメータが設定されます。また、プライマリ候補サーバにstandby.signalファイルが作成されます。
例)
> pg_basebackup -D D:\database\inst1 -X fetch --waldir=E:\transaction\inst1 --progress --verbose -R --dbname="application_name=待機センタのプライマリ候補サーバ名" -h 運用センタのプライマリサーバのIPアドレス -p 運用センタのプライマリサーバのポート番号
注意
pg_basebackupコマンドには、-Rオプションを指定して実行し、standby.signalファイルを作成してください。standby.signalを作成しない場合、Mirroring Controllerを待機センタモードで起動することができません。standby.signalファイルの詳細については、“PostgreSQL Documentation”の“Hot Standby”を参照してください。
運用センタのプライマリサーバへの接続がパスワード認証を必要とする方式の場合、自動で認証が行われるようにしておく必要があります。pg_basebackupコマンドの-Rオプションを指定し、--dbnameオプションにpasswordパラメータを指定すると、 pg_basebackupコマンドにより、postgresql.auto.confファイルのprimary_conninfoパラメータにパスワードが設定されて自動的に接続できるようになります。
postgresql.auto.confファイルのprimary_conninfoパラメータにパスワードを設定しない場合は、パスワードファイル(%APPDATA%¥postgresql¥pgpass.conf)を作成してreplicationデータベースに対するパスワードを設定してください。
primary_conninfoパラメータは、postgresql.confファイルには設定せず、pg_basebackupコマンドを使用してpostgresql.auto.confファイルのみに設定してください。
postgresql.confファイルの以下のパラメータを変更します。
パラメータ | 変更内容 |
---|---|
following_async_walsenders | パラメータを削除します。 |
synchronous_standby_names | '待機センタのスタンバイサーバ名'を指定します。 |
パラメータ | 指定内容 |
---|---|
restore_command | 'cmd /c ""インストールディレクトリ\\bin\\pgx_walcopy.cmd" "広域回線異常時の手動転送先の一時ディレクトリ\\%f" "%p""' |
archive_cleanup_command | 'pg_archivecleanup "広域回線異常時の手動転送先の一時ディレクトリ" "%r"' |
上記のパラメータの変更に加えて、以下のパラメータを変更してください。
パラメータ | 変更内容 |
---|---|
restart_after_crash | 本パラメータはoffのままでも問題ありませんが、 削除するか、あるいは、onを指定することも可能です。 |
ポイント
restore_commandパラメータを使用することで、広域回線異常時に待機センタのプライマリ候補サーバに手動転送した運用センタのアーカイブログを適用し、RPOを高めることができます。
注意
広域回線異常時に手動転送されたアーカイブログファイルと、バックアップデータを利用したリカバリに備えて取得するアーカイブログファイルは異なります。このため、restore_commandパラメータ、およびarchive_cleanup_commandパラメータには、archive_commandパラメータに指定したバックアップデータ格納先ディレクトリを指定しないでください。
Windowsサービスへインスタンスを登録します。
“導入ガイド(サーバ編)”の“インスタンスの作成”を参照して、インスタンスをWindowsサービスへ登録します。なお、pg_ctlコマンドのregisterモードには、以下のオプションを指定します。
-Nオプションのサービス名には、サーバ定義ファイルのdb_instance_service_nameパラメータに指定した名前を指定する
-Sオプションに“demand”を指定して、システム起動時に自動的にサービスを起動しない
-Sオプションに“auto”を指定して、システム起動時に自動的にサービスを起動する
注意
多重化したインスタンスのWindowsサービスは、Mirroring Controllerが起動するため、自動起動を行う設定にしないでください。
プライマリ候補サーバとスタンバイサーバを同一サーバ内に構築する場合には、プライマリ候補サーバとFUJITSU Enterprise Postgresのインスタンスの登録サービス名が重複しないように登録してください。
インスタンスとMirroring Controllerの起動順序を決めます。
本手順の実施は不要です。
インスタンスのWindowsサービス登録後、dependパラメータを指定したsc configコマンドを実行し、インスタンス起動後にMirroring Controllerを起動するよう設定を変更します。
pg_ctlコマンド、またはWindowsサービスを使用して、プライマリ候補サーバのインスタンスを起動します。
ALTER SYSTEM SET文を使用して、postgresql.auto.confファイルのprimary_conninfoパラメータに指定する接続文字列を以下のように設定します。
キーワード | 指定内容 | 備考 |
---|---|---|
host | 運用センタのプライマリサーバのホスト名,運用センタのスタンバイサーバのホスト名 | 運用センタのプライマリサーバに接続するための情報をPostgreSQLの接続文字列の形式で指定します。 host、port、application_name、target_session_attrsの指定は必須です。 application_nameには、自サーバのサーバ識別子.confファイルのprimarycenter_primary_conninfo、standbycenter_primary_conninfoパラメータで設定するapplication_nameの値と同じ値を設定します。 target_session_attrsにはread-writeを設定します。 |
port | 運用センタのプライマリサーバのポート番号,運用センタのスタンバイサーバのポート番号 | |
application_name | 待機センタのプライマリ候補サーバ名 | |
target_session_attrs | read-write |
例) psqlコマンドを使用した場合の実行例を以下に示します。
postgres=# ALTER SYSTEM SET primary_conninfo='host=運用センタのプライマリサーバのホスト名,運用センタのスタンバイサーバのホスト名 port=運用センタのプライマリサーバのポート番号,運用センタのスタンバイサーバのポート番号 application_name=待機センタのプライマリ候補サーバ名 target_session_attrs=read-write';
注意
必須の接続文字列以外に必要な情報がある場合は、primary_conninfoパラメータの設定に含めてください。
postgresql.auto.confファイルのprimary_conninfoパラメータの設定と、サーバ識別子.confファイルのprimarycenter_primary_conninfoパラメータの設定は、プライマリ候補サーバ内で同じ値を指定してください。サーバ識別子.confファイルのprimarycenter_primary_conninfoパラメータの設定方法の詳細は、“7.3.2 プライマリ候補サーバの災害対策運用のセットアップ”を参照してください。
primary_conninfoパラメータは、postgresql.confファイルには設定せず、ALTER SYSTEM SET文を使用してpostgresql.auto.confファイルのみに設定してください。
ポイント
postgresql.auto.confファイルのprimary_conninfoパラメータのtarget_session_attrsにread-writeを指定することで、待機センタのプライマリ候補サーバがhostおよびportに指定する接続先情報の中から運用センタのプライマリサーバを自動で認識します。運用センタでの切り替え発生時に、待機センタのプライマリ候補サーバが自動的に運用センタの新プライマリサーバに接続できるように、primarycenter_primary_conninfoパラメータのhostおよびportには、運用センタのプライマリサーバとスタンバイサーバの両方を接続先情報として指定してください。
参照
primary_conninfoの詳細については、“PostgreSQL Documentation”の“Setting Up a Standby Server”を参照してください。
キーワード | 指定内容 |
---|---|
host | 運用センタのプライマリサーバのホスト名, 運用センタのスタンバイサーバのホスト名 |
port | 運用センタのプライマリサーバのポート番号, 運用センタのスタンバイサーバのポート番号 |
application_name | 待機センタのプライマリ候補サーバ名 |
target_session_attrs | read-write |
例) psqlコマンドを使用した場合の実行例を以下に示します。
postgres=# ALTER SYSTEM SET primary_conninfo='host=運用センタのプライマリサーバのホスト名,運用センタのスタンバイサーバのホスト名 port=運用センタのプライマリサーバのポート番号,運用センタのスタンバイサーバのポート番号 application_name=待機センタのプライマリ候補サーバ名 target_session_attrs=read-write';
注意
必須の接続文字列以外に必要な情報がある場合は、primary_conninfoパラメータの設定に含めてください。
primary_conninfoパラメータは、postgresql.confファイルには設定せず、ALTER SYSTEM SET文を使用してpostgresql.auto.confファイルのみに設定してください。
ポイント
postgresql.auto.confファイルのprimary_conninfoパラメータのtarget_session_attrsにread-writeを指定することで、待機センタのプライマリ候補サーバがhostおよびportに指定する接続先情報の中から運用センタのプライマリサーバを自動で認識します。
参照
primary_conninfoの詳細については、“PostgreSQL Documentation”の“Standby Server Settings”を参照してください。
pg_ctlコマンド、またはWindowsサービスを使用して、プライマリ候補サーバのインスタンスを停止します。
参照
postgresql.confファイルのパラメータの詳細については、“A.1 プライマリサーバで設定するパラメータ”を参照してください。
災害対策運用時にpostgresql.confファイルに設定するパラメータは、“第12章 災害対策運用時に設定するパラメータ”を参照してください。
postgresql.auto.confファイルの詳細については、“PostgreSQL Documentation”の“Parameter Interaction via the Configuration File”を参照してください。