有事に備えた運用センタのデータベースの複製を目的として、データベース多重化運用を災害対策運用に変更する場合の手順を示します。すでに運用しているデータベース多重化運用を災害対策運用の運用センタに変更し、新たに待機センタのセットアップを行うことで、運用の変更を行います。
“3.8.1 ローリングアップデート”の手順を実施し、保守作業の手順において、プライマリサーバとスタンバイサーバで以下の設定変更を行います。
pg_hba.confファイルの編集
待機センタからの接続を認証するため、プライマリサーバとスタンバイサーバのpg_hba.confファイルに以下のエントリーを追加します。
# TYPE DATABASE USER ADDRESS METHOD host replication fsep 待機センタのプライマリ候補サーバのアドレス 認証方式 host replication fsep 待機センタのスタンバイサーバのアドレス 認証方式
postgresql.confファイルの編集
プライマリサーバとスタンバイサーバのpostgresql.confファイルに以下のパラメータを設定します。
パラメータ | 指定内容 | 備考 |
---|---|---|
max_wal_senders | 4 | 待機センタにもトランザクションログを送信することと、pg_basebackupコマンドを運用センタのスタンバイサーバと待機センタのプライマリ候補サーバで同時に実行した場合に備えて、4を指定します。 |
wal_keep_size | WALの保存サイズ(単位:メガバイト) | “7.1 セットアップ前に必要な設計”で設計したRPOに基づいた運用センタで蓄積する最大トランザクションログ量を元に指定します。 |
archive_mode | always | 運用センタ、および待機センタのすべてのサーバでアーカイブログを取得するため、alwaysを指定します。 |
following_async_walsenders | 'on (待機センタのプライマリ候補サーバ名,待機センタのスタンバイサーバ名)' | トランザクションログの転送順を固定するパラメータです。待機センタのプライマリ候補サーバ名と待機センタのスタンバイサーバ名を指定することで、運用センタのスタンバイサーバに転送後、待機センタに転送します。 これにより、運用センタ内でMirroring Controllerによる縮退が行われた場合に、待機センタ内のデータベースを再構築する必要がなくなります。 災害対策運用時は必ず本パラメータを指定します。 |
参考
災害対策運用では広域回線切断に備えて、wal_keep_sizeパラメータを使用し、トランザクションログが再利用されないようにします。このため、広域回線切断時間と更新トランザクションの内容によって、蓄積されるトランザクションログの容量が変動します。
蓄積されるトランザクションログの容量の見積り式については、“導入ガイド(サーバ編)”の“災害対策運用時のトランザクションログの容量の見積り”を参照してください。
参照
災害対策運用時にpostgresql.confファイルに設定するパラメータは、“第12章 災害対策運用時に設定するパラメータ”を参照してください。
ポイント
following_async_walsendersパラメータに'on'のみを指定することもできます。その場合、待機センタでの本パラメータの削除や変更は不要となりますが、待機センタ以外の任意のスタンバイサーバから接続する場合は、これらのサーバについても本パラメータが有効となります。
サーバ識別子.confファイルの編集
heartbeat_error_actionパラメータにはfallback以外を指定してください。
ポイント
待機センタでデータベース多重化機能を利用する場合、OSのダウンおよび無応答の監視において、ハートビート異常で無条件に自動縮退を行う動作を選択することはできません。待機センタでデータベース多重化機能を利用しない場合は、ハートビート異常で無条件に自動縮退を行う動作を選択することができます。
待機センタでデータベース多重化機能を利用しない場合の災害対策運用ではセンタ切り替え後の手順を単純化するため、Windowsサービスによるインスタンス、およびMirroring Controllerの起動・停止を個別で行うように設定を変更します。
WindowsサービスからMirroring Controllerの登録を解除
mc_ctlコマンドをunregisterモードで実行します。
例)
> mc_ctl unregister -M D:\mcdir\inst1
Windowsサービスからインスタンスの登録を解除
pg_ctlコマンドをunregisterモードで-Nオプションを指定して実行します。-Nオプションのサービス名には、サーバ識別子.confファイルのdb_instance_service_nameパラメータに指定した名前を指定してください。
例) 登録サービス名が“inst1”の実行例を以下に示します。
> pg_ctl unregister -D D:\database\inst1 -N inst1
WindowsサービスへのMirroring Controllerの登録
mc_ctlコマンドをregisterモードで--mc-onlyオプションを指定して実行します。
mc_ctlコマンドの-Pオプションには、コマンドを実行したOSユーザーのパスワードを指定してください。
例)
> mc_ctl register -M D:\mcdir\inst1 -P ******** --mc-only
Windowsサービスのインスタンスの登録
pg_ctlコマンドのregisterモードに-Nオプション、-Sをオプション指定して実行してください。
-Nオプションのサービス名には、サーバ識別子.confファイルのdb_instance_service_nameパラメータに指定した名前を指定してください。
-Sオプションには“auto”を指定して、システム起動時に自動的にサービスを起動するようにします。
例) 登録サービス名が“inst1”の実行例を以下に示します。
> pg_ctl register -D D:\database\inst1 -N inst1 -S auto
Windowsサービス変更後、dependパラメータを指定したsc configコマンドを実行し、インスタンス起動後にMirroring Controllerを起動するよう設定を変更します。
参考
設定方法の詳細は、scコマンドのヘルプなどのドキュメントを参照してください。
“7.3 待機センタのセットアップ”を参照し、待機センタのセットアップを行います。
注意
インスタンスとMirroring Controllerの自動起動・停止の設定は、待機センタでデータベース多重化機能を利用する場合としない場合で設定が異なります。詳細は、“7.5 インスタンスとMirroring Controllerの自動起動・停止の設定”を参照してください。