待機センタのプライマリ候補サーバで異常が発生した場合の対処方法を示します。
待機センタのプライマリ候補サーバで異常が発生した場合の対処方法は、待機センタでデータベース多重化機能を利用する場合と利用しない場合で異なります。
待機センタでデータベース多重化機能を利用する場合
対処は必要ありません。
参考
待機センタのプライマリ候補サーバで異常を検知し、待機センタのスタンバイサーバのストリーミングレプリケーションの接続先を運用センタのプライマリサーバに自動で切り替えることで、待機センタへのトランザクションログの送信が再開されます。そのため、待機センタのスタンバイサーバは、運用センタのプライマリサーバとデータを同期させたり、待機センタのスタンバイサーバでの参照系の業務を停止させたりする必要はありません。
mc_ctlコマンドのswitchモードを使用し、プライマリ候補サーバの切り替えを手動で行います。詳細は、“9.1.4 プライマリ候補サーバの手動切り替え”を参照してください。
障害が発生した資源の復旧手順は、基本的にはデータベース多重化運用と同じです。詳細は、“4.1.1 切り替え発生後の縮退運転における運用操作”を参照してください。なお、データベース多重化運用の“4.1.1.1.3 異常原因の特定とリカバリ”のリカバリの手順において以下の違いがあります。
pg_rewindコマンドは使用できません。
pg_basebackupコマンドを使用した復旧は必須ではありません。
プロセスダウンなどインスタンスの資源が破壊されていない場合は、待機センタのプライマリ候補サーバの異常となった原因を取り除いてからインスタンスを再起動することで、スタンバイサーバとして組み込まれます。
ALTER SYSTEM SET文を使用して、postgresql.auto.confファイルのprimary_conninfoパラメータに指定する接続文字列を以下のように変更します。
接続文字列の変更について、pg_basebackupコマンドを使用して復旧する場合は、“7.3.6 スタンバイサーバのインスタンスの作成・設定・登録”を参照してください。
pg_basebackupコマンドを使用せずにインスタンスを再起動することで復旧する場合は、インスタンスのみを起動し、接続文字列を変更してから、Mirroring Controllerを再起動します。
キーワード | 指定内容 | 備考 |
---|---|---|
host | 新プライマリ候補サーバのホスト名 | プライマリ候補サーバに接続するための情報をPostgreSQLの接続文字列の形式で指定します。 |
port | 新プライマリ候補サーバのポート番号 | |
application_name | 新スタンバイサーバ名 | |
target_session_attrs | 削除またはanyを指定します |
例) psqlコマンドを使用した場合の実行例を以下に示します。
postgres=# ALTER SYSTEM SET primary_conninfo='host=新プライマリ候補サーバのホスト名 port=新プライマリ候補サーバのポート番号 application_name=新スタンバイサーバ名';
“4.1.1.2 スタンバイサーバの組込み”の手順でスタンバイサーバを組込む前にサーバ識別子.confファイルのstandbycenter_modeパラメータをstandbyに変更します。
また、データベース多重化運用の“プライマリサーバの切り戻し”において以下の違いがあります。
プライマリサーバの切り戻しの手順は、“9.1.5 プライマリ候補サーバの切り戻し”を参照してください。
待機センタでデータベース多重化機能を利用しない場合
待機センタのスタンバイサーバの接続先を運用センタのプライマリサーバに変更し、待機センタにトランザクションログが送信できるようにします。ALTER SYSTEM SET文を実行し、待機センタのスタンバイサーバのpostgresql.auto.confファイルのprimary_conninfoパラメータに指定された接続文字列を以下のように設定し、インスタンスを再起動します。
キーワード | 指定内容 |
---|---|
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';
待機センタのプライマリ候補サーバの異常となった原因を取り除いてから、以下のいずれかの対処を行います。
ストリーミングレプリケーションの接続先の変更
ストリーミングレプリケーションの接続先を待機センタのスタンバイサーバに変更するため、ALTER SYSTEM SET文を実行し、postgresql.auto.confファイルのprimary_conninfoパラメータに指定された接続文字列を以下のように設定し、インスタンスを再起動します。
キーワード | 指定内容 |
---|---|
host | 待機センタのスタンバイサーバのホスト名 |
port | 待機センタのスタンバイサーバのポート番号 |
application_name | 待機センタのプライマリ候補サーバ名 |
target_session_attrs | 削除またはanyを指定します |
例) psqlコマンドを使用した場合の実行例を以下に示します。
postgres=# ALTER SYSTEM SET primary_conninfo='host=待機センタのスタンバイサーバのホスト名 port=待機センタのスタンバイサーバのポート番号 application_name=待機センタのプライマリ候補サーバ名;
インスタンスの再作成
待機センタのスタンバイサーバのインスタンスの複製を作成し、インスタンスを再作成します。インスタンス再作成の手順は、セットアップ時の手順と同じです。詳細は、“7.3.6 スタンバイサーバのインスタンスの作成・設定・登録”を参照してください。
注意
本手順の復旧により、待機センタ内でのサーバの役割が入れ替わります。そのため、セットアップ時の構成に戻したい場合には、待機センタ内でサーバの切り戻しを行います。切り戻しの手順は、“9.1.5 プライマリ候補サーバの切り戻し”を参照してください。