このトピックでは、プライマリとセカンダリの ApsaraDB RDS for MariaDB インスタンス間でワークロードを切り替える方法について説明します。 データベースシステムでは、自動プライマリ/セカンダリ スイッチオーバーを有効にできます。 これにより、プライマリ RDS インスタンスに障害が発生した場合、システムは自動的にワークロードをセカンダリ RDS インスタンスに切り替えます。 プライマリ/セカンダリ スイッチオーバー後、セカンダリ RDS インスタンスが新しいプライマリ RDS インスタンスに昇格し、データベースシステムへの接続に使用されるエンドポイントは変更されません。 アプリケーションは、そのエンドポイントを使用して新しいプライマリ RDS インスタンスに接続できます。 自動プライマリ/セカンダリ スイッチオーバーは、高可用性を確保するために使用します。 また、プライマリ RDS インスタンスとセカンダリ RDS インスタンス間で手動でワークロードを切り替えることもできます。
RDS High-availability Edition を使用する場合、データベースシステムのプライマリ RDS インスタンスのスタンバイとして、セカンダリ RDS インスタンスが用意されています。 プライマリ RDS インスタンスのデータは、リアルタイムでセカンダリ RDS インスタンスに同期されます。 アクセスできるのはプライマリ RDS インスタンスのみで、セカンダリ RDS インスタンスにはアクセスできません。
プライマリ RDS インスタンスに障害が発生した場合、ワークロードは自動的にセカンダリ RDS インスタンスに切り替わります。
注意事項
スイッチオーバー中、サービスが中断することがあります。 アプリケーションがインスタンスに自動的に再接続するように設定されていることを確認してください。
操作手順
-
ApsaraDB RDS コンソールにログインします。
-
上部のメニューバーで、RDS インスタンスがあるリージョンを選択します。
-
対象の RDS インスタンスを見つけ、インスタンスの ID をクリックします。
-
ナビゲーションペインで、インスタンスの可用性 をクリックします。
-
[可用性情報] セクションで、プライマリデータベースの切り替え をクリックします。
-
切り替え時間を選択し、OK をクリックします。
プライマリ/セカンダリ スイッチオーバー中は、多くの操作を実行できません。 たとえば、データベースやアカウントの管理、ネットワークタイプの変更はできません。 計画メンテナンスウィンドウ中にプライマリ/セカンダリ スイッチオーバーを実行することを推奨します。
説明メンテナンスウィンドウを変更する場合は、次の操作を実行してください。
-
変更 をクリックします。
-
[設定情報] セクションで、メンテナンスウィンドウを変更し、保存 をクリックします。
-
[サービス可用性] ページに移動し、ページを更新して、手順を続行します。
-
よくある質問
-
プライマリ/セカンダリ スイッチオーバーの後、手動でワークロードを元のプライマリ RDS インスタンスに切り戻す必要はありますか。
いいえ、プライマリ/セカンダリ スイッチオーバーの後、手動でワークロードを元のプライマリ RDS インスタンスに切り戻す必要はありません。 プライマリ RDS インスタンスのデータは、セカンダリ RDS インスタンスのデータと同じです。 プライマリ/セカンダリ スイッチオーバーの後、セカンダリ RDS インスタンスが新しいプライマリ RDS インスタンスとして機能します。 追加の操作は不要です。
-
プライマリ/セカンダリ スイッチオーバーのたびに、完了後 10 分間、RDS インスタンスが期待どおりに動作しません。 考えられる原因と対処方法を教えてください。
A:例外によって高可用性スイッチオーバーがトリガーされると、アプリケーションからの長時間接続が接続ステータスの変更を検出できない場合があります。 ソケットタイムアウトが設定されていない場合、アプリケーションはデータベースからの応答を待ち、数百秒後にようやく切断されることがよくあります。 この間、一部のデータベース接続が正しく機能せず、多くの SQL クエリが失敗する原因となります。 これらの無効な接続を防ぎ、復旧時間を短縮するために、connectTimeout および socketTimeout パラメーターを設定することを推奨します。 これにより、ネットワークエラー発生時にアプリケーションが待機し続けるのを防ぐことができます。
タイムアウト値は、特定のワークロードと使用パターンに基づいて設定してください。 オンライントランザクション処理 (OLTP) のシナリオでは、目安として connectTimeout を 1〜2秒に、socketTimeout を 60〜90秒に設定することを推奨します。 これらの値は参考値です。