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

ApsaraDB RDS:DTS を使用して ApsaraDB RDS インスタンスで垂直分割を実行する

最終更新日:Nov 09, 2025

ApsaraDB RDS インスタンスが過負荷の場合、RDS インスタンスからデータベースまたはテーブルを別の RDS インスタンスに垂直分割できます。このトピックでは、デュアルライトソリューションと単純な分割ソリューションを使用して RDS インスタンスで垂直分割を実行する方法について説明します。

背景情報

RDS インスタンスにデータベース A とデータベース B が含まれていると仮定します。ビジネスの成長に伴い、RDS インスタンスのボトルネックがますます明らかになります。RDS インスタンスの負荷を軽減するために、データベース B を別の RDS インスタンスに垂直分割できます。詳細については、「デュアルライトソリューション」および「単純な分割ソリューション」をご参照ください。

注意事項

  • RDS インスタンスのデータベースまたはテーブルを分割する先の別の RDS インスタンスを作成する必要があります。宛先 RDS インスタンスとソース RDS インスタンスのデータベースアカウントに必要な権限が同じであることを確認してください。サポートされている宛先インスタンスタイプについては、「データ移行ソリューションの概要」をご参照ください。

    説明

    ソースデータベースとターゲットデータベース用にデータベースアカウントを作成し、データ移行に必要な権限をデータベースアカウントに付与することをお勧めします。これにより、セッションの区別が容易になり、データセキュリティが向上します。

  • 宛先 RDS インスタンスのエンドポイントをアプリケーションに追加する必要があります。

  • 単純な分割ソリューションでは、一時的にビジネスを一時停止し、データベースへのデータ書き込みを停止する必要があるため、オフピーク時に操作を実行することをお勧めします。これにより、プログラムの変更を公開してインスタンスを切り替える際のビジネスへの影響を軽減できます。

デュアルライトソリューション

説明

デュアルライトソリューションは、段階的なスイッチオーバーを実装し、サービスへの悪影響を軽減するのに役立ちます。デュアルライトソリューションを使用する前に、アプリケーションを変更し、アプリケーションデータをソースおよび宛先 RDS インスタンスのデータベース B に書き込めることを確認する必要があります。

  1. ソース RDS インスタンスから宛先 RDS インスタンスへのデータ移行タスクを設定します。移行するオブジェクトとしてデータベース B を選択します。データ移行タスクの設定方法の詳細については、「データ移行ソリューションの概要」をご参照ください。

    説明

    データ移行タスクを設定するときは、[スキーマ移行][完全データ移行]、および [増分データ移行] を選択する必要があります。

  2. データ移行タスクが増分データ移行段階に入り、増分データ移行の遅延がゼロまたは 5 秒未満になるまで待ちます。

    image

  3. ソース RDS インスタンスと宛先 RDS インスタンスの間でデータベース B のデータが一致していることを確認します。

  4. データが一致している場合は、データ移行タスクを完了します。詳細については、「データ移行タスクを完了する」をご参照ください。

    警告

    データ移行に使用されるデータベースアカウントには、読み取りおよび書き込み権限が付与されます。データ移行タスクが完了したら、データセキュリティを確保するために、アカウントを削除するか、アカウントの書き込み権限を取り消す必要があります。

  5. ソース RDS インスタンスと宛先 RDS インスタンスの両方のデータベース B にデータを書き込むようにアプリケーションを設定します。

  6. ソース RDS インスタンスと宛先 RDS インスタンスのデータベース B にログオンします。データベースの種類に基づいて次のいずれかのコマンドを実行し、セッション情報を表示します。新しいセッションが作成されて書き込み操作が実行されることを確認してください。

    MySQL

    SHOW processlist;

    SQL Server

    SELECT * FROM sys.dm_exec_connections;

    Oracle

    SELECT sid,serial#,username,program,machine,status from v$session;

    PostgreSQL

    SELECT * FROM pg_stat_activity;

    Redis

    CLIENT LIST

    MongoDB

    use admin
    db.runCommand({currentOp: 1, $all:[{"active" : true}]})
    説明

    必要な文を実行すると、返される情報には、DTS がソース RDS インスタンスと宛先 RDS インスタンスのデータベース B に接続するためのプロセスまたはセッションが含まれます。

  7. アプリケーションがソース RDS インスタンスと宛先 RDS インスタンスの両方のデータベース B にデータを書き込めることを確認します。その後、アプリケーションを 1 ビジネスサイクルまたは 7 日間実行します。

  8. ビジネスに関連するすべての機能をテストし、問題が発生しないことを確認します。その後、ソース RDS インスタンスからデータベース B を非公開にできます。

単純な分割ソリューション

説明

単純な分割ソリューションを使用する場合、アプリケーションを変更する必要はありません。ただし、ロールバックが失敗する可能性があります。

  1. ソース RDS インスタンスから宛先 RDS インスタンスへのデータ移行タスクを設定します。移行するオブジェクトとしてデータベース B を選択します。データ移行タスクの設定方法の詳細については、「データ移行ソリューションの概要」をご参照ください。

  2. データ移行タスクが増分データ移行段階に入り、増分データ移行の遅延がゼロまたは 5 秒未満になるまで待ちます。

    image

    説明

    データ移行タスクを設定するときに [増分データ移行] を選択しない場合、進行状況バーに増分データ移行段階は表示されません。データ移行タスクが完了すると、タスクは自動的に終了します。この場合、データ移行タスクを開始する前に、ビジネスを停止し、ソースデータベースへのデータ書き込みを停止する必要があります。その後、ステップ 6 に進みます。

  3. ソース RDS インスタンスと宛先 RDS インスタンスの間でデータベース B のデータが一致していることを確認します。

  4. データが一致している場合は、データ移行タスクを完了します。詳細については、「データ移行タスクを完了する」をご参照ください。

    警告

    データ移行に使用されるデータベースアカウントには、読み取りおよび書き込み権限が付与されます。データ移行タスクが完了したら、データセキュリティを確保するために、アカウントを削除するか、アカウントの書き込み権限を取り消す必要があります。

  5. ソース RDS インスタンスのデータベース B からアプリケーションを切断します。

    説明

    アプリケーションがソース RDS インスタンスのデータベース B から切断された後、ソース RDS インスタンスのデータベース A に関連するサービスと機能が影響を受ける場合は、アプリケーションをソース RDS インスタンスから切断する必要があります。

  6. ソース RDS インスタンスのデータベース B にログオンします。データベースの種類に基づいて、次のいずれかのコマンドを実行してセッション情報を表示します。書き込み操作を実行するために新しいセッションが作成されないことを確認します。

    MySQL

    SHOW processlist;

    SQL Server

    SELECT * FROM sys.dm_exec_connections;

    Oracle

    SELECT sid,serial#,username,program,machine,status from v$session;

    PostgreSQL

    SELECT * FROM pg_stat_activity;

    Redis

    CLIENT LIST

    MongoDB

    use admin
    db.runCommand({currentOp: 1, $all:[{"active" : true}]})
    説明

    必要な文を実行すると、返される情報には、DTS がソース RDS インスタンスのデータベース B に接続するためのプロセスまたはセッションが含まれます。

  7. 逆方向データ移行タスクを作成して開始し、宛先 RDS インスタンスのデータベース B からソース RDS インスタンスのデータベース B に増分データを移行します。

    このステップで作成される移行タスクは、データロールバックに使用されます。サービスが再開された後、エラーが発生した場合は、ワークロードをソースデータベースに切り替えることができます。

    警告

    前述のデータ移行タスクを設定するとき、「移行タイプとオブジェクトの設定」ステップでは「増分データ移行」のみを選択できます。その後、ソースデータベースに移行して戻すデータベースまたはテーブルを選択できます。

  8. アプリケーションをソース RDS インスタンスのデータベース B から切断したままにします。ソース RDS インスタンスと宛先 RDS インスタンスの間でデータベース B のデータが一致していることを確認した後、アプリケーションのデータベースサービスを宛先 RDS インスタンスのデータベース B に切り替えて、ビジネスを再開します。

  9. 宛先 RDS インスタンスのデータベース B にログオンします。データベースの種類に基づいて次のいずれかのコマンドを実行し、セッション情報を表示します。新しいセッションが作成されて書き込み操作が実行されることを確認してください。

    MySQL

    SHOW processlist;

    SQL Server

    SELECT * FROM sys.dm_exec_connections;

    Oracle

    SELECT sid,serial#,username,program,machine,status from v$session;

    PostgreSQL

    SELECT * FROM pg_stat_activity;

    Redis

    CLIENT LIST

    MongoDB

    use admin
    db.runCommand({currentOp: 1, $all:[{"active" : true}]})
    説明

    必要な文を実行すると、返される情報には、DTS がソース RDS インスタンスのデータベース B に接続するためのプロセスまたはセッションが含まれます。

  10. ビジネスがターゲットデータベースに切り替えられた後、ビジネスを 1 ビジネスサイクルまたは 7 日間実行します。

  11. ビジネスに関連するすべての機能をテストし、問題が発生しないことを確認します。その後、ソース RDS インスタンスからデータベース B を非公開にし、逆方向データ移行タスクを完了できます。詳細については、「データ移行タスクを完了する」をご参照ください。

    警告

    データ移行に使用されるデータベースアカウントには、読み取りおよび書き込み権限が付与されます。データ移行タスクが完了したら、データセキュリティを確保するために、アカウントを削除するか、アカウントの書き込み権限を取り消す必要があります。