すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:プライマリとセカンダリの ApsaraDB RDS for SQL Server インスタンス間でワークロードをスイッチオーバーする

最終更新日:May 10, 2025

ApsaraDB RDS for SQL Server は、高可用性を確保するためにプライマリ/セカンダリスイッチオーバー機能を提供します。 データベースシステムのプライマリ RDS インスタンスがシステム操作エラーまたはハードウェア障害により障害になった場合、システムはワークロードをプライマリ RDS インスタンスからセカンダリ RDS インスタンスに自動的にスイッチオーバーします。 プライマリ/セカンダリスイッチオーバーが完了すると、セカンダリ RDS インスタンスが新しいプライマリ RDS インスタンスになります。 データベースシステムへの接続に使用されるエンドポイントは変更されません。 アプリケーションは、エンドポイントを使用して新しいプライマリ RDS インスタンスに自動的に接続できます。 これにより、高可用性が確保されます。 また、データベースシステムのアップグレード、メンテナンス、またはトラブルシューティングが必要な場合は、プライマリ RDS インスタンスとセカンダリ RDS インスタンス間でワークロードを手動でスイッチオーバーすることもできます。

前提条件

プライマリ RDS インスタンスは、RDS High-availability Edition または RDS Cluster Edition を実行しています。

説明
  • RDS Cluster Edition を使用している場合、自動プライマリ/セカンダリスイッチオーバーのみがサポートされます。 プライマリ RDS インスタンスとセカンダリ RDS インスタンス間でワークロードを手動でスイッチオーバーすることはできません。 プライマリ RDS インスタンスとセカンダリ RDS インスタンス間でワークロードを手動でスイッチオーバーする場合は、Alibaba Cloud テクニカルサポートに連絡してください。

  • RDS Basic Edition を使用している場合、セカンダリ RDS インスタンスは提供されません。 そのため、RDS Basic Edition はプライマリ/セカンダリスイッチオーバー機能をサポートしていません。

機能の説明

  • 自動プライマリ/セカンダリスイッチオーバー: デフォルトでは、自動プライマリ/セカンダリスイッチオーバー機能が有効になっています。 RDS インスタンスのプライマリノードに障害が発生した場合、システムはワークロードをセカンダリノードに自動的にスイッチオーバーします。 プライマリ/セカンダリスイッチオーバーの原因の詳細については、「プライマリ/セカンダリスイッチオーバーの理由」をご参照ください。

  • 手動プライマリ/セカンダリスイッチオーバー: 自動プライマリ/セカンダリスイッチオーバー機能が有効になっている場合でも、RDS インスタンスのプライマリノードとセカンダリノード間でワークロードを手動でスイッチオーバーすることもできます。 災害復旧訓練のために手動プライマリ/セカンダリスイッチオーバーを実行できます。 また、マルチゾーンデプロイ方式を使用していて、アプリケーションに最も近いゾーンの RDS インスタンスにアプリケーションを接続する場合は、手動プライマリ/セカンダリスイッチオーバーを実行することもできます。

説明

データは、プライマリ RDS インスタンスとセカンダリ RDS インスタンス間でリアルタイムに同期されます。 プライマリ RDS インスタンスにのみアクセスできます。 セカンダリ RDS インスタンスはスタンバイとしてのみ実行されます。

制限事項

サーバーレス RDS インスタンスは、手動プライマリ/セカンダリスイッチオーバーをサポートしていません。 詳細については、「概要」をご参照ください。 サーバーレス RDS インスタンスに障害が発生した場合、システムはプライマリとセカンダリのサーバーレス RDS インスタンス間でワークロードを自動的にスイッチオーバーします。

使用上の注意

ApsaraDB RDS for SQL Server のプライマリ/セカンダリ同期メカニズムにより、データベースシステムのプライマリ RDS インスタンスとセカンダリ RDS インスタンス間で完全なデータ同期が保証されます。 ただし、ALTER LOGIN 文のすべてのパラメータ設定が同期されるわけではありません。 ALTER LOGIN 文の SIDlogin_name、および password パラメータの設定のみが同期されます。 ApsaraDB RDS for SQL Server は、ALTER LOGIN 文の他のすべてのパラメータにデフォルト値を使用します。 詳細については、「ALTER LOGIN (Transact-SQL)」をご参照ください。

影響

  • プライマリ/セカンダリスイッチオーバー中は、約 30 秒間続くサービス中断が発生します。 アプリケーションがデータベースシステムに自動的に再接続するように構成されていることを確認してください。

    アプリケーションが接続管理に以前のバージョンの Druid コンポーネントを使用している場合、切断後にアプリケーションがデータベースシステムに自動的に再接続できない場合があります。 この問題を解決するには、Druid コンポーネントを 1.1.16 以降にアップグレードすることをお勧めします。

  • RDS インスタンスに対してプライマリ/セカンダリスイッチオーバーが実行された後、RDS インスタンスにアタッチされている読み取り専用 RDS インスタンスは、RDS インスタンスへのデータのレプリケートおよび RDS インスタンスからの増分データの同期に使用される接続を再確立する必要があります。 その結果、読み取り専用 RDS インスタンスのデータには数分の遅延が生じます。

  • プライマリ/セカンダリスイッチオーバーによって、RDS インスタンスへの接続に使用されるエンドポイントが変更されることはありません。 ただし、エンドポイントに関連付けられている IP アドレスは変更される場合があります。 アプリケーションがエンドポイントを使用して RDS インスタンスに接続する場合、プライマリ/セカンダリスイッチオーバー後もアプリケーションは想定どおりに実行できます。

  • インスタンスに障害が発生した場合、スイッチオーバーに時間がかかる場合があります。

手動プライマリ/セカンダリスイッチオーバーを実行する

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、インスタンスの可用性 をクリックします。

  3. 表示されるページの 可用性情報 セクションで、プライマリ/セカンダリノードの切り替え をクリックします。

  4. プライマリ/セカンダリスイッチオーバーを実行する日時を指定します。 次に、[OK] をクリックします。

    説明

    プライマリ/セカンダリスイッチオーバー中は、特定の操作を実行できません。 たとえば、データベースとアカウントの管理やネットワークタイプの変更はできません。 [指定された時間範囲内] を選択することをお勧めします。

短期間、自動プライマリ/セカンダリスイッチオーバーを無効にする

シナリオ

デフォルトでは、自動プライマリ/セカンダリスイッチオーバー機能が有効になっています。 RDS インスタンスのプライマリノードに障害が発生した場合、システムはワークロードをプライマリノードからセカンダリノードに自動的に切り替えます。 次のシナリオでは、自動プライマリ/セカンダリスイッチオーバー機能を一時的に無効にできます。

  • プライマリ/セカンダリスイッチオーバーがシステムの可用性に影響を与えることを望まない大規模な販売プロモーション

  • プライマリ/セカンダリスイッチオーバーによって予期しない問題が発生することを望まない重要なアプリケーションのアップグレード

  • プライマリ/セカンダリスイッチオーバーがシステムの安定性に影響を与えることを望まない主要なイベント

手順

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、インスタンスの可用性 をクリックします。

  3. 可用性情報 セクションで、[自動プライマリ/セカンダリスイッチオーバー] をクリックします。

    説明

    [自動プライマリ/セカンダリスイッチオーバー] が見つからない場合は、RDS インスタンスがすべての前提条件を満たしているかどうかを確認してください。

  4. [一時的に無効にする] を選択し、[期限] パラメータを構成して、[OK] をクリックします。

    説明
    • [期限] パラメータで指定された日時になると、自動プライマリ/セカンダリスイッチオーバー機能が自動的に有効になります。

    • 期限パラメータを構成しない場合、自動プライマリ/セカンダリスイッチオーバー機能はデフォルトで 1 日間無効になります。 期限パラメータは、最大 7 日後の 23:59:59 に設定できます。

構成が完了すると、インスタンスの可用性 ページで、自動プライマリ/セカンダリフェールオーバー機能が自動的に有効になる期限を確認できます。

プライマリ/セカンダリスイッチオーバーログを表示する

説明

プライマリ RDS インスタンスが Premium ローカル SSD を使用して SQL Server 2008 R2 を実行している場合にのみ、プライマリ/セカンダリスイッチオーバーログを表示できます。

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、インスタンスの可用性 をクリックします。

  3. 表示されるページの [プライマリ/セカンダリ切り替えログ] セクションで、時間範囲を選択し、選択した時間範囲にわたって生成されたプライマリ/セカンダリスイッチオーバーログを表示します。

    image.png

FAQ

プライマリ/セカンダリスイッチオーバー後、セカンダリ RDS インスタンスからプライマリ RDS インスタンスにワークロードを手動で切り替える必要がありますか?

いいえ、プライマリ/セカンダリスイッチオーバー後、セカンダリ RDS インスタンスからプライマリ RDS インスタンスにワークロードを手動で切り替える必要はありません。 プライマリ RDS インスタンスのデータは、セカンダリ RDS インスタンスのデータと同じです。 プライマリ/セカンダリスイッチオーバー後、セカンダリ RDS インスタンスは新しいプライマリ RDS インスタンスとして機能します。 追加の操作は必要ありません。

プライマリ/セカンダリスイッチオーバーが実行されるたびに、プライマリ/セカンダリスイッチオーバーの完了後 10 分間、RDS インスタンスが想定どおりに実行されません。 考えられる原因は何ですか? 問題を解決するにはどうすればよいですか?

RDS インスタンスの例外によって高可用性を確保するためのプライマリ/セカンダリスイッチオーバーがトリガーされた場合、アプリケーションは永続接続の変更を識別して応答できない可能性があります。 ソケット接続にタイムアウト期間が指定されていない場合、アプリケーションはデータベースが結果を返すのを待ちます。 ほとんどの場合、アプリケーションは数百秒後に切断されます。 この期間中、データベースへの一部の接続は想定どおりに機能せず、多数の SQL 文が実行に失敗します。 無効な接続を回避するには、[connectTimeout] パラメータと [socketTimeout] パラメータを構成して、ネットワークエラーによってアプリケーションが長時間待機しないようにすることをお勧めします。 これにより、障害から回復するために必要な時間が短縮されます。

これらのパラメータは、ワークロードと使用モードに基づいて構成する必要があります。 オンライントランザクションの場合、[connectTimeout] パラメータを 1 ~ 2 秒に設定し、[socketTimeout] パラメータを 60 ~ 90 秒に設定することをお勧めします。 この構成は参考用です。

関連操作

操作

説明

SwitchDBInstanceHA

プライマリノードとセカンダリノード間でワークロードをスイッチオーバーします。

ModifyHASwitchConfig

インスタンスの自動プライマリ/セカンダリスイッチオーバー機能を有効または無効にします。

DescribeHASwitchConfig

インスタンスの自動プライマリ/セカンダリスイッチオーバー機能の設定をクエリします。