Azure Data Studio 用の Azure SQL Migration 拡張機能を使用してデータベースを移行する

Azure Data Studio 用の Azure SQL Migration 拡張機能で統合エクスペリエンスを使用する方法について学習します。 データベース要件を評価する場合、Azure リソースの適切なサイズの SKU レコメンデーションを取得する場合、SQL Server データベースを Azure に移行する場合に役立ちます。

Azure Data Studio 用の Azure SQL Migration 拡張機能には、次の主な利点があります。

  • エンド ツー エンドの移行エクスペリエンスに向けた応答性の高い UI。 拡張機能は、(パフォーマンス データに基づく) 移行準備評価と SKU 推奨事項 (プレビュー) から始まります。

  • SQL Server インスタンスを評価できるように強化された評価メカニズム。 拡張機能は、Azure SQL ターゲットに移行する準備ができているデータベースを識別します。

    注意

    Azure SQL Migration 拡張機能を使用して、Windows または Linux で実行されている SQL Server データベースを評価できます。

  • オンプレミスのソース SQL Server インスタンスからパフォーマンス データを収集し、Azure SQL ターゲットに基づいて適切なサイズの SKU 推奨事項を生成する SKU レコメンデーション エンジン。

  • データ移動アクティビティを調整し、シームレスな移行エクスペリエンスを提供する、Azure Database Migration Service を利用する信頼性の高い Azure サービス。

  • ビジネスの要件に応じて、オンライン (最小限のダウンタイムが求められる移行の場合) またはオフライン (移行の期間全体を通してダウンタイムが続く移行の場合) いずれかの移行を実行できます。

  • オンプレミス環境のソース SQL Server インスタンスとバックアップにアクセスするための独自のコンピューティング リソースを使用する、セルフホステッド統合ランタイムを作成して構成できます。

特定の移行シナリオと Azure SQL ターゲットの詳細については、次の表のチュートリアルの一覧を参照してください。

移行シナリオ 移行モード
SQL Server から Azure SQL Managed Instance へ オンライン / オフライン
SQL Server から Azure 仮想マシン上の SQL Server へ オンライン / オフライン
SQL Server から Azure SQL Database (プレビュー) へ オフライン

重要

ターゲットが Azure SQL Database である場合、移行を開始する前に必ずデータベース スキーマをデプロイしておいてください。 SQL Server dacpac 拡張機能や、Azure Data Studio 用の SQL Database Projects 拡張機能などのツールを使用できます。

次のビデオは、Azure Data Studio 用の Azure SQL Migration 拡張機能に追加された最近の更新と機能について説明しています。


Azure Data Studio 用の Azure SQL Migration 拡張機能のアーキテクチャ

Azure Database Migration Service は、Azure SQL Migration 拡張機能アーキテクチャのコア コンポーネントです。 Database Migration Service は、Azure SQL へのデータベースの移行をサポートする信頼性の高い移行オーケストレーターを提供します。 Azure Data Studio の Azure SQL Migration 拡張機能を使用して、Database Migration Service のインスタンスを作成することも、既存のインスタンスを使用することもできます。

Database Migration Service では、Azure Data Factory のセルフホステッド統合ランタイムを使用して、オンプレミスのネットワーク共有または Azure ストレージ アカウントから有効なバックアップ ファイルにアクセスしてアップロードします。

移行プロセスのワークフローを次の図に示します。

Azure SQL Migration 拡張機能アーキテクチャを示す図。

次の一覧では、ワークフローでの各手順について説明します。

(1) ソース SQL Server: プライベート クラウド内にある SQL Server のオンプレミス インスタンス、またはパブリック クラウド内の仮想マシン上の SQL Server のインスタンス。 Windows または Linux では SQL Server 2008 以降のバージョンがサポートされています。

(2) ターゲット Azure SQL: サポートされている Azure SQL ターゲットは、Azure SQL Managed Instance、Azure Virtual Machines 上の SQL Server (フル管理モードで サービス拡張機能として SQL インフラストラクチャに登録済み)、および Azure SQL Database です。

(3) ネットワーク ファイル共有: 移行するデータベースのバックアップ ファイルが保存されているサーバー メッセージ ブロック (SMB) ネットワーク ファイル共有。 Azure ストレージ BLOB コンテナーと Azure ストレージ ファイル共有もサポートされています。

(4) Azure Data Studio: Azure Data Studio 用の Azure SQL Migration 拡張機能をダウンロードしてインストールします。

(5) Azure Database Migration Service: オンプレミス環境から Azure へのデータ移動アクティビティを実行するために移行パイプラインを調整する Azure サービスです。 Database Migration Service は、セルフホステッド統合ランタイム Azure Data Factory に関連付けられており、セルフホステッド統合ランタイムを登録および監視する機能を提供します。

(6) セルフホステッド統合ランタイム: ソース SQL Server インスタンスとバックアップ ファイルの場所に接続できるコンピューターにセルフホステッド統合ランタイムをインストールします。 Database Migration Service は認証キーを提供し、セルフホステッド統合ランタイムを登録します。

(7) Azure ストレージ アカウントへのバックアップ ファイルのアップロード: Database Migration Service は、セルフホステッド統合ランタイムを使用して、有効なバックアップ ファイルをオンプレミスのバックアップ場所から Azure ストレージ アカウントにアップロードします。 データ移動アクティビティとパイプラインは、バックアップ ファイルをアップロードするために移行ワークフローで自動的に作成されます。

(8) ターゲット Azure SQL でのバックアップの復元: Database Migration Service は、Azure ストレージ アカウントからサポートされているターゲット Azure SQL インスタンスにバックアップ ファイルを復元します。

注意

移行ターゲットが Azure SQL Database の場合、この移行のためのバックアップは必要ありません。 Azure SQL Database へのデータベースの移行は、データベースの事前作成とデータ移動 (Database Migration Service による実行) を伴う論理的な移行と見なされます。

重要

Azure Data Studio の Azure SQL 移行拡張機能では、データベース バックアップは取得されません。また、ユーザーに代わってデータベース バックアップも開始されません。 その代わりに、このサービスでは、移行に既存のデータベース バックアップ ファイルが使用されます。

Azure SQL Database へのデータベースの移行は、データベースの事前作成とデータ移動 (Database Migration Service による実行) を伴う論理的な移行と見なされます。

オフライン移行モードでは、Database Migration Service はバックアップ ソース ファイルを Azure ストレージにアップロードし、ターゲットに復元します。カットオーバーは必要ありません。

前提条件

以下のセクションでは、サポートされている各 Azure SQL ターゲットの前提条件について説明します。

  • Azure Data Studio をダウンロードしてインストールします。

  • Azure Data Studio マーケットプレースから Azure SQL Migration 拡張機能をインストールします。

  • 次に示す組み込みロールのいずれかに割り当てられている Azure アカウントを用意します。

    • ターゲット インスタンスである Azure SQL Managed Instance の共同作成者、およびサーバー メッセージ ブロック (SMB) ネットワーク共有からデータベース バックアップ ファイルをアップロードするストレージ アカウントの共同作成者
    • Azure SQL Managed Instance のターゲット インスタンスまたは Azure Storage アカウントを含む Azure リソース グループ閲覧者ロール
    • Azure サブスクリプションの所有者ロールまたは共同作成者ロール (Database Migration Service の新しいインスタンスを作成する場合に必要)

    いずれかの組み込みロールを使用する代わりに、カスタム ロールを割り当てることもできます。

    重要

    Azure アカウントが必要になるのは、移行手順を構成するときのみです。 Azure Data Studio の移行ウィザードで Azure レコメンデーションを確認したり評価を行ったりする際に、Azure アカウントは必要ありません。

  • ターゲット インスタンスである Azure SQL Managed Instance を作成します。

  • ソース SQL Server インスタンスへの接続に使用するログインが SYSADMIN サーバー ロールのメンバーであること、または CONTROL SERVER アクセス許可を有していることを確認します。

  • 完全データベース バックアップ ファイルと、その後のトランザクション ログ バックアップ ファイルが格納される SMB ネットワーク共有、Azure ストレージ アカウント ファイル共有、または Azure ストレージ アカウント BLOB コンテナーを指定します。 データベースの移行中、このバックアップ場所が Database Migration Service によって使用されます。

    重要

    • Azure Data Studio の Azure SQL 移行拡張機能では、データベース バックアップは取得されません。また、ユーザーに代わってデータベース バックアップも開始されません。 その代わりに、このサービスでは、移行に既存のデータベース バックアップ ファイルが使用されます。
    • データベース バックアップ ファイルが SMB ネットワーク共有に存在する場合、Database Migration Service がデータベースのバックアップ ファイルをアップロードしたりデータベースを移行したりする際に使用できる Azure ストレージ アカウントを作成します。 Azure ストレージ アカウントは必ず、Database Migration Service のインスタンス作成先と同じリージョンに作成してください。
    • 各バックアップは、単独のバックアップ ファイルまたは複数のバックアップ ファイルに書き込むことができます。 完全ログとトランザクション ログなど、複数のバックアップを 1 つのバックアップ メディアに追加することはサポートされていません。
    • 大きなバックアップの移行に関連する潜在的な問題が発生する可能性を低減するために、圧縮されたバックアップを提供できます。
  • ソース SQL Server インスタンスを実行しているサービス アカウントに、データベース バックアップ ファイルが格納されている SMB ネットワーク共有に対する読み取りおよび書き込みアクセス許可があることを確認します。

  • Transparent Data Encryption (TDE) によって保護されたデータベースを移行する場合、データベースの復元前に、ソースの SQL Server インスタンスからターゲットのマネージド インスタンスに証明書を移行しておかなければなりません。 詳細については、「TDE で保護されたデータベースの証明書を Azure SQL Managed Instance に移行する」を参照してください。

    ヒント

    Always Encrypted で保護されている機密データがデータベースに含まれている場合、移行プロセスでは、ターゲットのマネージド インスタンスに Always Encrypted キーが自動的に移行されます。

  • データベース バックアップがネットワーク ファイル共有にある場合は、データベース バックアップにアクセスして移行するためのセルフホステッド統合ランタイムをインストールするコンピューターを用意します。 移行ウィザードでは、セルフホステッド統合ランタイムをダウンロードしてインストールするためのダウンロード リンクと認証キーが提供されます。

    移行の準備として、セルフホステッド統合ランタイムをインストールするコンピューターで、次のアウトバウンド ファイアウォール規則とドメイン名が有効になっていることを確認します。

    ドメイン名 送信ポート 説明
    パブリック クラウド: {datafactory}.{region}.datafactory.azure.net
    または *.frontend.clouddatahub.net

    Azure Government: {datafactory}.{region}.datafactory.azure.us

    Azure China: {datafactory}.{region}.datafactory.azure.cn
    443 セルフホステッド統合ランタイムが Database Migration Service に接続するために必要です。

    パブリック クラウドに新しく作成されたデータ ファクトリの場合、セルフホステッド統合ランタイム キーから、{datafactory}.{region}.datafactory.azure.net 形式の完全修飾ドメイン名 (FQDN) を特定します。

    既存のデータ ファクトリで、セルフホステッド統合キーに FQDN が見つからない場合は、代わりに *.frontend.clouddatahub.net を使用してください。
    download.microsoft.com 443 セルフホステッド統合ランタイムが更新プログラムをダウンロードするために必要です。 自動更新を無効にしている場合は、このドメインの構成をスキップできます。
    *.core.windows.net 443 ネットワーク共有からデータベース バックアップをアップロードするために Azure ストレージ アカウントに接続するセルフホステッド統合ランタイムによって使用されます

    ヒント

    データベース バックアップ ファイルが Azure ストレージ アカウントで既に提供されている場合、移行プロセス中にセルフホステッド統合ランタイムは不要です。

  • セルフホステッド統合ランタイムを使用する場合は、ランタイムがインストールされているコンピューターが、ソース SQL Server インスタンスと、バックアップ ファイルがあるネットワーク ファイル共有に接続できることを確認します。

  • アウトバウンド ポート 445 を有効にして、ネットワーク ファイル共有へのアクセスを許可します。 詳細については、セルフホステッド統合ランタイムを使用するうえでの推奨事項に関する記事を参照してください。

  • Database Migration Service を初めて使用する場合は、Microsoft.DataMigration リソース プロバイダーがサブスクリプションに登録されていることを確認します。 リソース プロバイダーを登録する手順に従ってください。

データベースの移行にセルフホステッド統合ランタイムを使用する際の推奨事項

  • 複数のソース SQL Server データベースに対して、1 つのセルフホステッド統合ランタイムを使用します。

  • 1 台のコンピュータには、セルフホステッド統合ランタイムのインスタンスを 1 つだけインストールします。

  • 1 つのセルフホステッド統合ランタイムのみを Database Migration Service の 1 つのインスタンスに関連付けます。

  • セルフホステッド統合ランタイムは、インストールされているコンピューター上のリソース (メモリや CPU) を使用します。 ソース SQL Server インスタンスとは別のコンピューターにセルフホステッド統合ランタイムをインストールします。 しかし、2 台のコンピューターは近接している必要があります。 セルフホステッド統合ランタイムをデータ ソースの近くに配置すると、セルフホステッド統合ランタイムにおけるデータ ソースへの接続に要する時間が短縮されます。

  • セルフホステッド統合ランタイムは、データベース バックアップがオンプレミスの SMB ネットワーク共有にある場合にのみ使用します。 ソース データベース バックアップが既にストレージ BLOB コンテナーにある場合、データベースの移行にセルフホステッド統合ランタイムは不要です。

  • 1 台のコンピュータ上のセルフホステッド統合ランタイムごとに最大 10 個のデータベースの同時移行をお勧めします。 同時データベース移行の数を増やすには、セルフホステッド ランタイムを最大 4 ノードにスケールアウトするか、異なるコンピュータのマシンごとにセルフホステッド統合ランタイムのインスタンスを個別に作成します。

  • 自動更新するようにセルフホステッド統合ランタイムを構成して、リリースされた新機能、バグ修正、拡張機能を自動的に適用します。 詳細については、「セルフホステッド統合ランタイムの自動更新」を参照してください。

Azure portal からデータベース移行の進行状況を監視する

Azure Data Studio 用の Azure SQL Migration 拡張機能を使用してデータベースを移行する場合、移行ウィザードで選択された Azure Database Migration Service インスタンスによって移行が調整されます。

Azure portal でデータベース移行を監視するには、

  1. Azure portal で、リソース名を使用して Database Migration Service のインスタンスを検索します。

    Azure portal でリソース名を検索する方法を示すスクリーンショット。

  2. Database Migration Service インスタンスの概要で、[移行の監視] を選択して、データベースの移行の詳細を表示します。

    Azure portal で移行を監視する方法を示すスクリーンショット。

既知の問題と制限事項

  • Azure SQL Managed Instance または Azure Virtual Machines 上の SQL Server のターゲット インスタンスでは Database Migration Service を使用した既存データベースの上書きはサポートされていません。

  • ソース トポロジに合わせるようなターゲット上での高可用性とディザスター リカバリーの構成は、Database Migration Service ではサポートされていません。

  • 次のサーバー オブジェクトはサポートされていません。

    • Login
    • SQL Server エージェント ジョブ
    • 資格情報
    • SQL Server Integration Services パッケージ
    • サーバーの役割
    • サーバー監査

    移動する必要があるメタデータとサーバー オブジェクトの完全な一覧については、「データベースを別のサーバーで使用できるようにするときのメタデータの管理」に記載の詳細情報を参照してください。

  • Azure Virtual Machines 上の SQL Server に移行する場合、SQL Server 2008 以前のバージョンはターゲット バージョンとしてサポートされていません。

  • SQL Server 2014 または SQL Server 2012 を使用する場合は、ネットワーク共有オプションを使用する代わりに、ソース データベースのバックアップ ファイルを Azure Storage Blob コンテナーに格納する必要があります。 バックアップ ファイルをページ BLOB として格納します。 ブロック BLOB は、SQL Server 2016 以降のバージョンでのみサポートされています。

  • Database Migration Service を使用したデータベースの移行には、Azure Data Factory から作成された既存のセルフホステッド統合ランタイムの使用はできません。 最初に、Azure Data Studio 用の Azure SQL Migration 拡張機能を使用して、セルフホステッド統合ランタイムを作成します。 今後のデータベース移行において、そのセルフホステッド統合ランタイムを再利用できます。

  • 現在、Azure Data Studio では、ソース SQL Server インスタンスに接続するための Azure Active Directory (Azure AD)/Windows 認証 と SQL ログインの両方がサポートされています。 Azure SQL ターゲットでは、SQL ログインのみがサポートされます。

価格

  • Azure Database Migration Service は、Azure Data Studio 用の Azure SQL Migration 拡張機能と共に無料で使用できます。 Database Migration Service を使用すると、複数の SQL Server データベースを無料で移行できます。

  • オンプレミス環境から Azure にデータベースを移行する場合、データ移動やデータ イングレスのコストは評価されません。 ソース データベースを別のリージョンまたは Azure 仮想マシンから移動する場合、帯域幅プロバイダーとルーティングのシナリオによっては、帯域幅の料金が発生する可能性があります。

  • Azure Data Studio をインストールする仮想マシンまたはオンプレミス サーバーを使用します。

  • オンプレミスのネットワーク共有のデータベース バックアップにアクセスするには、セルフホステッド統合ランタイムが必要です。

利用可能なリージョン

Azure Data Studio 用の Azure SQL 移行拡張機能 (Azure Database Migration Service を利用) を使用したデータベース移行をサポートする Azure リージョンの一覧については、「リージョン別に利用可能な Azure 製品」を参照してください。

次の手順