Windows 上で SSMS または SqlPackage.exe を使用して Linux 上でデータベースをエクスポートおよびインポートする

適用対象:SQL Server - Linux

この記事では、SQL Server Management Studio (SSMS)SqlPackage.exe を使用して SQL Server on Linux 上でデータベースをエクスポートおよびインポートする方法について説明します。 SSMS と SqlPackage.exe は Windows アプリケーションなので、Linux 上のリモート SQL Server インスタンスに接続できる Windows マシンがある場合は、この手法を使用します。

Windows で SSMS を使用して SQL Server on Linux に接続」での説明のとおりに、常に SQL Server Management Studio (SSMS) の最新バージョンをインストールして使用する必要があります。

Note

ある SQL Server インスタンスから別の SQL Server インスタンスにデータベースを移行する場合は、バックアップと復元を使用します。

SSMS を使用してデータベースをエクスポートする

  1. Windows の検索ボックスに「Microsoft SQL Server Management Studio」と入力して SSMS を起動し、デスクトップ アプリを選択します。

    Screenshot of SQL Server Management Studio.

  2. オブジェクト エクスプローラーでソース データベースに接続します。 オンプレミスまたはクラウドの Linux、Windows、または Docker で実行されている Microsoft SQL Server、および Azure SQL Database または Azure Synapse Analytics のソース データベースを使用できます。

  3. オブジェクト エクスプローラーでソース データベースを右クリックし、[タスク] をポイントして、[データ層アプリケーションのエクスポート] をクリックします。

  4. エクスポート ウィザードで [次へ] を選び、[設定] タブで、BACPAC ファイルをローカル ディスクの場所または Azure BLOB に保存するようにエクスポートを構成します。

  5. 既定では、データベース内のすべてのオブジェクトがエクスポートされます。 [詳細設定] タブを選び、エクスポートするデータベース オブジェクトを選びます。

  6. [次へ] を選び、[完了] を選びます。

.bacpac ファイルが選択した場所に正常に作成され、ターゲット データベースにインポートする準備が整います。

SSMS を使用してデータベースをインポートする

  1. Windows の検索ボックスに「Microsoft SQL Server Management Studio」と入力して SSMS を起動し、デスクトップ アプリを選択します。

    Screenshot of SQL Server Management Studio again.

  2. オブジェクト エクスプローラーでターゲット サーバーに接続します。 オンプレミスまたはクラウドの Linux、Windows、または Docker で実行されている Microsoft SQL Server、および Azure SQL Database または Azure Synapse Analytics のターゲット サーバーを使用できます。

  3. オブジェクト エクスプローラーで Databases フォルダーを右クリックし、[データ層アプリケーションのインポート] を選択します。

  4. ターゲット サーバーにデータベースを作成するには、ローカル ディスクから BACPAC ファイルを指定するか、BACPAC ファイルをアップロードした Azure ストレージ アカウントとコンテナーを選択します。

  5. データベースの新しいデータベース名を指定します。 Azure SQL Database にデータベースをインポートする場合は、[Microsoft Azure SQL Database のエディション] (サービス レベル)、[データベースの最大サイズ]、および [サービスの目標] (パフォーマンス レベル) を設定します。

  6. [次へ] を選び、[完了] を選んで、ターゲット サーバーの新しいデータベースに BACPAC ファイルをインポートします。

.bacpac ファイルがインポートされ、指定したターゲット サーバーに新しいデータベースが作成されます。

SqlPackage のコマンドライン オプション

また、SQL Server Data Tools (SSDT) コマンドライン ツールである SqlPackage.exe を使用して、BACPAC ファイルをエクスポートおよびインポートすることもできます。

次のコマンド例では、BACPAC ファイルをエクスポートします。

SqlPackage.exe /a:Export /ssn:tcp:<your_server> /sdn:<your_database> /su:<username> /sp:<password> /tf:<path_to_bacpac>

.bacpac ファイルからデータベース スキーマとユーザー データをインポートするには、次のコマンドを使用します。

SqlPackage.exe /a:Import /tsn:tcp:<your_server> /tdn:<your_database> /tu:<username> /tp:<password> /sf:<path_to_bacpac>