インスタンス間データベースレプリケーションを使用して、ソース RDS インスタンスから宛先 RDS インスタンスへ、1 つ以上のデータベース、アカウント、およびアカウント権限をコピーします。
コンソールから実行するか、CopyDatabaseBetweenInstances API オペレーションを呼び出してレプリケーションを開始します。
仕組み
レプリケーションは以下の 2 段階で実行されます。
ApsaraDB RDS がソースインスタンスの完全バックアップを取得します。
取得した完全バックアップのデータを宛先インスタンスに復元します。
レプリケーション実行中にソースインスタンスに書き込まれたデータは、宛先インスタンスには反映されません。レプリケーションタスクが途中で失敗した場合、宛先インスタンスへのデータ書き込みは一切行われず、データ整合性が保たれます。
制限事項
ソースおよび宛先インスタンスは、同じ Alibaba Cloud アカウントに属している必要があります。
両インスタンスのリージョンおよびネットワークタイプは一致している必要があります。ゾーンは異なっていても構いません。
宛先インスタンスには、レプリケーション対象のデータベースと同名のデータベースが存在してはなりません。
一度限りの完全レプリケーションのみをサポートしています。初期レプリケーション後の増分同期はサポートされていません。
SQL Server Web インスタンスではバックアップ圧縮がサポートされていないため、バックアップおよび復元のスループットが 1 時間あたり 100 GB を下回る場合があります。
データベースレプリケーションと DTS データ移行の比較
| データベースレプリケーション | Data Transmission Service (DTS) データ移行 | |
|---|---|---|
| 原理 | データバックアップファイルまたは特定時点の状態を用いてデータベースをレプリケーションします。ソースデータは削除されません。 | ソースインスタンスのトランザクションログを読み取り・解析することで論理的な移行を実行します。完全な移行は、スキーマ移行、完全データ移行、および増分データ移行で構成されます。ソースデータは削除されません。 |
| 対応範囲 | ApsaraDB RDS for SQL Server インスタンスのみ | Elastic Compute Service (ECS) 上のセルフマネージドデータベース、オンプレミスデータセンター、サードパーティクラウドサーバー、および ApsaraDB RDS for SQL Server インスタンス。詳細については、「対応データベース」をご参照ください。 |
| 移行タイプ | 完全レプリケーションのみ(無料) | スキーマ移行、完全データ移行、および増分データ移行。増分データ移行の課金については、「課金概要」をご参照ください。 |
| ソースデータ | 削除されません | 削除されません |
RDS インスタンス間でのシンプルかつ一度限りのコピーにはデータベースレプリケーションをご利用ください。増分同期が必要な場合や、RDS 以外のソースからの移行を行う場合は、DTS をご利用ください。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
宛先インスタンスのデータベースエンジンバージョンが、ソースインスタンスのバージョン以上であること
宛先インスタンスの RDS エディションが、ソースインスタンスのエディション以上であること。エディションの優先順位(高い順):Cluster Edition、High-availability Edition、Basic Edition
宛先インスタンスの利用可能なストレージ容量が、レプリケーション対象のデータベースの合計サイズより大きいこと。ストレージの拡張については、「ApsaraDB RDS for SQL Server インスタンスの仕様変更」をご参照ください。
両インスタンスのインスタンスファミリー(汎用型または専用型)は同一でも異なっていても構いません。
データベースのレプリケーション
インスタンス ページに移動します。上部のナビゲーションバーからソースインスタンスのリージョンを選択し、その後、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[データベース] をクリックします。
[別のインスタンスへレプリケーション] をクリックします。
表示されるダイアログボックスで、以下のパラメーターを設定します。
パラメーター 説明 [ソースインスタンス名] ソース RDS インスタンスの名前。自動的に表示されます。 [宛先インスタンス名] 宛先 RDS インスタンスの名前。リージョンおよびネットワークタイプはソースインスタンスと一致している必要があります。ゾーンは異なっていても構いません。 ソースデータベース レプリケーション対象のデータベースです。
または
をクリックして、選択リスト間でデータベースを移動できます。宛先に既に同名のデータベースが存在する場合、そのデータベースはスキップされます。データベースを選択すると、スキーマおよびテーブルデータの両方がレプリケーションされます。ユーザーと権限のコピー 宛先インスタンスへのアカウントおよび権限のレプリケーションを制御します。ユーザーおよび権限もレプリケーションされます。:アカウントおよびその権限がコピーされます。宛先にすでに同名のユーザーが存在する場合、そのユーザーの権限はソースと一致するように上書きされます。宛先に該当ユーザーが存在しない場合は、新規作成され、ソースと同じ権限が付与されます。データベースのみがレプリケーションされます。ユーザーおよび権限はレプリケーションされません。(デフォルト):データベースの内容のみがコピーされます。レプリケーション完了後、宛先でアカウントを作成し、手動で権限を付与する必要があります。詳細については、「アカウントおよびデータベースの作成」をご参照ください。 [OK] をクリックします。
レプリケーションタスクはバックグラウンドで実行されます。タスクが失敗した場合、宛先への変更は一切適用されません。
よくある質問
レプリケーションにかかる時間はどのくらいですか?
レプリケーションにかかる時間は、主にレプリケーション対象のデータベースサイズによって決まります。以下の表は、非圧縮データサイズに基づくスループットの推定値を示しています。
| 処理 | 必須 | スループット推定値 |
|---|---|---|
| ソースでの完全データのバックアップ | 不要(直近のバックアップが存在する場合はスキップ) | 約 200 GB/時 |
| 宛先での完全バックアップの復元 | はい | 約 200 GB/時 |
| データベースの復元 | はい | 2 分以内 |
36 時間ルール:ソースインスタンスで過去 36 時間以内に完全バックアップが取得されていない場合、復元前に新しい完全バックアップが自動的に取得されます。総レプリケーション時間を最小化するには、レプリケーション開始前に手動で完全バックアップを取得するか、直近の自動完全バックアップから 36 時間以内にレプリケーションを開始してください。詳細については、「ApsaraDB RDS for SQL Server インスタンスのバックアップ」をご参照ください。
例:CPU コア数 4、メモリ 8 GB、データ量 600 GB のインスタンスの場合
完全データのバックアップ:約 3 時間(600 GB ÷ 200 GB/時)
宛先での完全バックアップの復元:約 3 時間(600 GB ÷ 200 GB/時)
データベースの復元:2 分以内
直近のバックアップがない場合の合計時間:約 6 時間 2 分、36 時間以内に完全バックアップが取得済みの場合の合計時間:約 3 時間 2 分
スループットに関する補足:
バックアップおよび復元速度は、リージョンおよび実行時刻によって異なります。より正確な見積もりを得るには、最新の完全バックアップにおけるデータ量および所要時間をご確認ください。
仕様が小さいインスタンス(例:CPU コア数 2、メモリ 4 GB)では、増分トランザクションログの適用がリソースを多く消費し、データベース復元フェーズが大幅に遅延する可能性があります。
SQL Server 2019 以降を実行しているインスタンスの場合、高速データベース回復オプションを使用すると、データベースの解凍フェーズを短縮できます。有効化する前に、このオプションを公式 Microsoft ドキュメントと照らし合わせて評価してください。
レプリケーションのスケジューリングに関するベストプラクティスは何ですか?
ピーク時を避けて実行する:本番ワークロードへの影響を軽減するため、非ピーク時にスケジュールしてください。
長時間トランザクションを回避する:レプリケーション実行中は、ソースインスタンス上でインデックスの作成または再構築、大規模データセットのアーカイブなど、長時間トランザクションを実行しないでください。これらの処理は追加のトランザクションログを生成し、データベース復元フェーズを延長します。
次のステップ
API を使用したデータベースレプリケーション:「CopyDatabaseBetweenInstances」
レプリケーションではなくバックアップからの復元:「ApsaraDB RDS for SQL Server インスタンスのデータ復元」