PolarDB クラスターでは、プライマリノードが利用不可になった場合、システムが自動的に読み取り専用ノードへフェールオーバーします。計画的なメンテナンスや特定ノードの置き換えを行う際には、対象ノードを指定して手動でフェールオーバーを実行することもできます。
注意事項
フェールオーバー(自動または手動を問わず)実行中は、一時的な接続切断(瞬断)が発生する場合があります。各瞬断の持続時間は 20~30 秒です。ご利用のアプリケーションがクラスターへの自動再接続をサポートしていることをご確認ください。
自動フェールオーバーの仕組み
PolarDB クラスターは高可用性を実現するためにアクティブ/アクティブアーキテクチャを採用しています。読み書き両方の処理を担当するプライマリノードが利用不可になると、システムは自動的に読み取り専用ノードを新しいプライマリノードに昇格させます。
各ノードにはフェイルオーバー優先度が割り当てられています。フェールオーバー実行時には、以下の手順で新しいプライマリノードが選択されます。
昇格可能なすべての読み取り専用ノードを検索します。
該当するノードの中から、フェイルオーバー優先度が最も高いノードを選択します。
候補ノードのうち最初のものを昇格しようと試みます。ネットワーク障害やレプリケーションエラーにより失敗した場合は、次に利用可能なノードを試行します。成功するまでこのプロセスを繰り返します。
複数のノードが同一のフェイルオーバー優先度を持つ場合、それらは等確率で選択されます。
手動フェールオーバーの実行
計画的なメンテナンス時に現在のプライマリノードを置き換えるなど、特定の読み取り専用ノードを新しいプライマリノードとして明示的に指定する必要がある場合に、手動フェールオーバーを実行します。
PolarDB コンソールにログインします。
画面左上隅から、クラスターがデプロイされているリージョンを選択します。
対象のクラスターを見つけ、その ID をクリックします。
概要 ページで、データベースノード セクションに移動します。セクションの右上隅にある
アイコンをクリックして、表示モードを切り替えます。プライマリノードを切り替え をクリックします。
表示されるダイアログボックスで、新しいプライマリノード のドロップダウンリストから対象ノードを選択し、OK をクリックします。
API リファレンス
| API | 説明 |
|---|---|
| FailoverDBCluster | PolarDB クラスター内で読み取り専用ノードをプライマリノードに昇格させます。 |