ApsaraDB RDS for MariaDB では、自動および手動によるプライマリ/セカンダリ スイッチオーバーをサポートしています。スイッチオーバー中には、セカンダリインスタンスがプライマリに昇格し、元のプライマリインスタンスは新しいセカンダリとなります。エンドポイントは変更されないため、アプリケーションは設定変更なしで新しいプライマリに再接続されます。
RDS High-availability Edition を使用している場合、1 台のセカンダリインスタンスがホットスタンバイとして稼働します。データはプライマリからセカンダリへリアルタイムで同期されます。プライマリ RDS インスタンスに障害が発生した場合、ワークロードは自動的にセカンダリ RDS インスタンスへフェールオーバーされます。アクセス可能なのはプライマリ RDS インスタンスのみであり、セカンダリ RDS インスタンスへはアクセスできません。
手動スイッチオーバーを実行するタイミング
以下の状況で手動スイッチオーバーを実行してください:
計画メンテナンス:プライマリインスタンスのメンテナンスを実施する前に、ワークロードをセカンダリへ切り替えます。
フェールオーバードリル:アプリケーションがデータベース障害から復旧できるかを検証します。
接続タイムアウトの検証:本番環境への導入前に、
connectTimeoutおよびsocketTimeoutの設定が適切であることを確認します。
制限事項
スイッチオーバーを開始する前に、以下の点をご確認ください:
サービス中断:スイッチオーバー中に一時的なサービス中断が発生します。アプリケーションが自動再接続を実行するよう設定されていることをご確認ください。
操作の制限:スイッチオーバー中は、データベースやアカウントの管理、ネットワークタイプの変更などの操作は実行できません。
メンテナンスウィンドウ:影響を最小限に抑えるため、あらかじめ計画されたメンテナンスウィンドウ内でスイッチオーバーを実行してください。
前提条件
開始前に、以下の条件を満たしていることをご確認ください:
RDS High-availability Edition を実行中の ApsaraDB RDS for MariaDB インスタンス
ApsaraDB RDS コンソール へのアクセス権限
データベースへの自動再接続が設定されたアプリケーション
手動スイッチオーバーの実行
ApsaraDB RDS コンソール にログインします。
上部ナビゲーションバーで、インスタンスが配置されているリージョンを選択します。
対象のインスタンスを検索し、その ID をクリックします。
左側ナビゲーションウィンドウで、サービス可用性 をクリックします。
可用性情報 セクションで、プライマリ/セカンダリインスタンスの切り替え をクリックします。
表示されるダイアログボックスで切り替え時刻を指定し、OK をクリックします。
メンテナンスウィンドウ内での切り替えを実行する場合は、メンテナンスウィンドウ内での切り替え オプションの右側にある 変更 をクリックします。構成情報 セクションでメンテナンスウィンドウを選択し、はい をクリックします。その後、サービス可用性 ページに戻り、ページをリフレッシュして続行します。
よくある質問
プライマリ/セカンダリ スイッチオーバー後に、元の状態へ戻す必要がありますか?
いいえ。スイッチオーバー後、セカンダリインスタンスは新しいプライマリとなり、ワークロードの処理を開始します。両インスタンス間のデータは同一であるため、追加の操作は不要です。
スイッチオーバー直後、約 10 分間インスタンスのパフォーマンスが低下します。原因は何ですか?
これは、アプリケーションが接続の変化を十分に迅速に検出できない場合に発生します。ソケットタイムアウトが設定されていないと、アプリケーションはデータベースからの応答を待機し続けます。多くの場合、数百秒経過後に接続が切断されます。この期間中、一部のデータベース接続が正常に機能せず、多数の SQL ステートメントが実行失敗します。
回復時間を短縮するため、JDBC 接続設定で connectTimeout および socketTimeout を設定してください。オンライントランザクションワークロードの場合、connectTimeout は 1~2 秒、socketTimeout は 60~90 秒に設定することを推奨します。これらの値は目安であり、ワークロードの特性に応じて調整してください。