適用対象:Azure SQL Managed Instance
この記事では、Azure SQL Managed Instance のインスタンス間でデータベースのオンライン コピーまたは移動を行う方法について説明します。 データベースのコピー操作と移動操作は、同じ Azure テナント内の異なる Azure サブスクリプション間でサポートされます。
概要
Always On 可用性グループ テクノロジを使用して、SQL マネージド インスタンス間でデータベースのオンライン コピーまたは移動操作を実行できます。 コピーと移動の機能を使うと、ソース データベースのコピーである新しいデータベースを、宛先インスタンスに作成することができます。 この機能を使ったデータ レプリケーションは、信頼性が高く、継続的、非同期、かつ準リアルタイムです。
データベースを コピー すると、操作中と操作の完了後も、ソース データベースはオンラインのままです。
逆に、データベースを 移動 すると、操作の完了後にソース データベースが削除されます。
複数のデータベース コピーを実行し、ソース SQL マネージド インスタンスから 1 つ以上のターゲット インスタンスに操作を移動できます。
データベースのコピーと移動は、操作の完了後にデータベースのコピーが作成されるため、ポイントインタイム リストア (PITR) とは異なります。 PITR を使うと、過去の指定した時点のデータベースのコピーが作成されます。
重要
データベースを新しい宛先に移動すると、既存の PITR バックアップはそのデータベースと共に移動せず、使用できなくなります。 移動操作が完了した時点で、宛先インスタンスでデータベースの新しいバックアップ チェーンが開始されます。
この機能を使うタイミング
データベースの移動またはコピーは、次のような場合に役立ちます。
- データベースの拡張とパフォーマンスの要件を管理する。
- 複数の SQL マネージド インスタンス間でワークロードのバランスを取ります。
- ワークロードを処理するために使用可能なリソースが増えるインスタンスにデータベースを移動します。
- 複数のインスタンスから複数のデータベースを統合する。
- 開発、テスト、運用の環境の間でデータベース パリティを作成する。
Workflow
データベースのコピーまたは移動のワークフローを次に示します。
データベース、ソース SQL マネージド インスタンス、および移行先インスタンスを選択し、操作を開始します。
データベースは、コピー先インスタンスにシード処理されます。 操作の状態を確認して、まだ進行中か完了かを判断します。
シード処理が完了すると、操作の状態は "完了の準備完了" と表示されます。
操作が手動で完了するまで、ソース データベースに発生したすべての変更が移行先データベースに適用されます。 操作はいつでも取り消すことができます。 24 時間以内に操作を明示的に完了してください。 24 時間以内に完了しなかった場合、操作は自動的に取り消され、コピー先データベースは削除されます。
手動で操作を完了したら、宛先データベースがオンラインになり、読み取り/書き込みワークロードに対する準備が整います。
データベースの移動を選択した場合、ソース データベースは削除されます。 データベースのコピーを選択した場合、ソース データベースはオンラインのままですが、データ同期は停止します。
移動操作のワークフロー例を次の図に示します。
データベース移動操作の設計により、データ損失がないことを保証します。 ユーザーが移動操作を完了すると、ソース データベースはワークロードの受け入れを停止し、トランザクションは移行先データベースにレプリケートされます。 その場合にのみ、移行先データベースはオンラインになり、ソース データベースは削除されます。 この設計により、ソース データベースのすべてのデータが コピー先データベースに確実に移動されます。
データベースのコピー操作は、データベースの移動と類似しています。 唯一の重要な違いは、操作の終了方法です。 データベースのコピー操作を完了すると、トランザクション ログからコピー先データベースへのレプリケーションが停止します。 ユーザーはコピー操作を完了するためのコマンドを明示的に発行しますが、ログ レプリケーションが停止した正確なタイミングは制御しません。 最後に、ソース データベースと移行先データベースの両方がオンラインであり、独立しており、読み取り/書き込みワークロードの準備ができています。
前提条件
データベースをコピーまたは移動する前に、次の要件を満たしている必要があります。
- ソース SQL マネージド インスタンスを含むリソース グループの 読み取 りアクセス許可が必要です。また、ソース インスタンスと移行先インスタンスの両方に対するデータベース レベルでの 書き込み アクセス許可が必要です。
- ソースと宛先のインスタンスが別々の Virtual Network にある場合は、Azure 仮想ネットワーク ピアリングなど、2 つのインスタンスの Virtual Network 間にネットワーク接続が確立されている必要があります。 また、TCP プロトコルでは、ポート 5022 とポート範囲 11000 から 11999 の受信トラフィックと送信トラフィックを許可する必要があります。 この要件は、ソース インスタンスと移行先インスタンスをホストする両方のサブネットに適用されます。 詳細については、さまざまな Azure VNet 内のインスタンス間にネットワーク接続を確立する方法を確認してください。
データベースをコピーまたは移動する
Azure portal を使用して、データベースを別の SQL マネージド インスタンスにコピーまたは移動できます。 そのためには次を行います。
Azure portal で SQL マネージド インスタンスに移動します。
[データ管理] で [データベース] を選択します。
1 つ以上のデータベースを選び、ペインの上部にある [コピー] または [オプション] オプションを選びます。
[移動] を選ぶと、操作の完了時にソース データベースはドロップされ、[コピー] を選ぶと、操作の完了時にソース データベースはオンラインのままになります。 いずれかのオプションを選ぶと、[マネージド データベースの移動] または [マネージド データベースのコピー] ページが開きます。 そのページが開いたら、操作に含める追加のデータベースを選択できます。
[ ソースの詳細 ] ウィンドウで、ソース データベースと SQL マネージド インスタンスの詳細を指定します。
[ 宛先の詳細 ] ウィンドウで、移行先の SQL マネージド インスタンスの詳細を指定します。
[レビューと開始] を選択してソースと宛先の詳細を検証し、[開始] を選択して操作を開始します。
[開始] を選択すると、インスタンスの [データベース] ページに戻り、操作の進行状況を監視できます。
[データベース] ページの [操作の詳細] 列を見て、操作の状態が "移動中" または "コピー中" であることを確認します。
取り消す場合は、[進行中] を選び、作業中のデータベースを選び、[操作のキャンセル] を選んでシードを停止し、宛先データベースをドロップします。
操作を監視します。 シードが完了すると、[操作の詳細] 列に "Move ready for completion" (移動の完了の準備完了) または "Copy ready for completion" (コピーの完了の準備完了) という状態が表示されます。
[完了の準備完了] を選んで [操作の詳細] 列を開き、コピーまたは移動する準備ができているデータベースを選びます。次に、[完了] を選んで操作を終了し、宛先データベースをオンラインにします。
ソース データベースに加えた変更は、この間に、つまり [完了] を選択するまでの間に、宛先データベースにレプリケートされます。 24 時間以内に完了しなかった場合、操作は自動的に取り消され、コピー先データベースは削除されます。 [完了] を選ぶと操作が完了し、[データベース] ページに戻ります。ここで操作が完了したことを確認できます。
データベースを移動した場合はオフラインになるため、そのデータベース名は使用できません。
コピー操作と移動操作のパフォーマンス
データベースのコピー操作と移動操作の両方に、2 つのフェーズがあります。 1 つ目は初期シード処理で、2 つ目はソース データベースから宛先データベースへの、変更内容のレプリケーションです。 通常、初期シード処理は、運用フェーズにおいて、より手のかかるフェーズです。 初期シード処理の完了にかかる時間は、データのサイズとアクティブなコピー操作または移動操作の数によって異なります。 ソースと宛先の Azure SQL Managed Instance で発生しているワークロードの強度と、ソースと宛先の間のネットワークの速度もシード処理の速度に影響します。 最適な状況で、推奨されるグローバル仮想ネットワーク ピアリングを使用してソースと宛先の間の接続が確立されると、シード処理速度は 1 時間あたり最大 360 GB になります。 シード処理プロセスとその速度は、DMV sys.dm_hadr_physical_seeding_stats 経由で監視できます。
SELECT
role_desc,
transfer_rate_bytes_per_second,
transferred_size_bytes,
database_size_bytes,
start_time_utc,
estimate_time_complete_utc,
end_time_utc,
local_physical_seeding_id
FROM
sys.dm_hadr_physical_seeding_stats;
制限事項
コピーと移動の機能には次の制限事項があることを考慮してください。
- ソースと宛先のインスタンスを同じにすることはできません。
- ソース インスタンスと移行先インスタンスの両方が同じ Azure リージョンにある必要があります。
- コピーおよび移動できるのは 、ユーザー データベースのみです。 "システム" データベースのコピーと移動はサポートされていません。
- 1 つのデータベースは、一度に 1 つの移動またはコピー操作のみに含めることができます。
- ソース インスタンスは、一度に最大 8 つのコピーまたは移動操作を実行できます。 8 つより多くの操作を開始できますが、一部はサービスによって管理されるキューに登録され、後で処理されます。
- コピーまたは移動操作中にデータベースの名前を変更することはできません。
- コピー操作または移動操作では、データベース タグはコピーされません。
- データベースのコピーと移動の操作を行っても、PITR バックアップはコピーまたは移動されません。
- フェールオーバー グループの一部であるか、Managed Instance リンクを使っているデータベースをコピーまたは移動することはできません。
- 移行元または移行先の SQL マネージド インスタンスは、フェールオーバー グループ (geo ディザスター リカバリー) のセットアップで構成しないでください。
- これらの機能に依存するデータベースを移動した後、トランザクション レプリケーション、変更データ キャプチャ (CDC)、または分散トランザクションを再構成する必要があります。
- ソース データベースが TDE 保護機能としてカスタマー マネージド キー (CMK) を使用している場合に、データベースをターゲット SQL Managed Instance にコピーまたは移動するには、Azure Key Vault でソース データベースの暗号化に使用されたものと同じキーに、ターゲット インスタンスがアクセスできる必要があります。
- データベースは、一致するバージョン以上の 更新ポリシーを持つインスタンスにのみコピーまたは移動できます。 たとえば、Always-up-to-date 更新ポリシーで構成されたインスタンスのデータベースを、SQL Server 2022 または SQL Server 2025 更新ポリシーで構成されたインスタンスにコピーしたり、移動したりすることはできません。 データベースが、より高いバージョンの更新ポリシーを持つインスタンスにコピーまたは移動されると、下位バージョンの更新ポリシーで構成されたインスタンスにコピーまたは移動することはできません。
関連するコンテンツ
データベースのコピーと移動に関連するその他のドキュメント。
- データベースのコピーとデータベースの移動に関する Azure PowerShell ドキュメント。
- データベースのコピーとデータベースの移動に関する Azure CLI ドキュメント
- SQL Managed Instance 間の接続を確立します。
その他のデータ移動オプションについては、以下を確認してください。