最新バージョンの SQLPackage は、Azure SQL Database などの複数の SQL ソースから Azure SQL Managed Instance (MI) への移行をサポートしています。
書き出す:
以下の手順に従って、SQLPackageコマンドライン ユーティリティを使用して SQL データベースをエクスポートできます。可能であれば、Azure SQL データベースと MI にアクセスできるワークステーションを使用して、エクスポートされた bacpac を宛先 MI にアクセスできるワークステーションに移動する必要がないようにしてください。
Windows 用の DacFramework.msi インストーラーをダウンロードして実行します。
新しいコマンド プロンプト ウィンドウを開き、次のコマンドを実行します。 cd C:\Program Files\Microsoft SQL Server\150\DAC\bin
次のコマンドを実行して、SQL データベースをエクスポートします。 \backup150.bacpac
上記のコマンドでは、データベース「dbname」をサーバー「servername」から「backup150.bacpac」という名前のローカル ファイルにエクスポートします。設定に合わせてこれらの値を調整する必要があります。
輸入:
エクスポートされた bacpac ファイルを含む環境が宛先 MI にアクセスできない場合は、エクスポートされた bacpac ファイル "backup150.bacpac" を Azure SQL MI にアクセスできる環境に移動します。
以下の手順に従って、エクスポート用の同じ SQLPackage ユーティリティを使用して、Azure SQL Managed Instance に bacpac をインポートできます。上記のエクスポートから現在の環境でステップ 1 と 2 をすでに実行している場合は、ステップ 3 にスキップしてインポートを実行してください。
Windows 用の DacFramework.msi インストーラーをダウンロードして実行します。
新しいコマンド プロンプト ウィンドウを開き、次のコマンドを実行します。 cd C:\Program Files\Microsoft SQL Server\150\DAC\bin
次のコマンドを実行してマネージド インスタンスにインポートします。 \Desktop\backup150.bacpac
上記のコマンドでは、「backup150.bacpac」という名前の bacpac からデータベース「dbname」を宛先 MI「ManagedInstancename」にインポートします。設定に合わせてこれらの値を調整する必要があります。
ノート。
「18.0」より古い DACfx バージョンは、Azure SQL Managed Instance への移行をサポートしていないことに注意してください。最新の互換性を確保するために、SQLPackage の最新バージョンを使用していることを確認してください。古いバージョンを使用すると、次のようなエラーが発生する可能性があります。
*** データベースのインポート エラー: パッケージをインポートできませんでした。マスター サーバーまたはターゲット サーバー 'データベース名' に接続できません。マスター サーバーまたはターゲット サーバーに同じパスワードを持つユーザーが必要です。
または
*** データベースのインポート エラー: パッケージをインポートできませんでした。警告 SQL0: Microsoft Azure SQL データベース v12 をターゲット プラットフォームとして指定するプロジェクトでは、SQL Server 2014 との互換性の問題が発生する可能性があります。 エラー SQL72014: .Net SqlClient データ プロバイダー: メッセージ 41918、レベル 16、状態 1、行 2 CREATE DATABASE ステートメントは、SQL Database Managed Instance ではサポートされていません。エラー SQL72045: スクリプト実行エラー。実行されたスクリプト: