適用対象:Linux 上の SQL Server
この記事では、SQL Server Management Studio(SSMS)またはSqlPackageを使ってLinux上のSQL Server on Linuxでデータベースをエクスポート・インポートする方法を紹介します。 SSMSはWindowsアプリケーションです。 SqlPackageはWindows、macOS、Linuxで動作します。 SSMSを使うには、Linux上のリモートSQL Serverインスタンスに接続できるWindowsマシンが必要です。
「Windows で SQL Server Management Studio を使用して SQL Server on Linux を管理する」の説明のとおりに、常に SSMS の最新バージョンをインストールして使用する必要があります。
ある SQL Server インスタンスから別の SQL Server インスタンスにデータベースを移行する場合の詳細については、「バックアップと復元を使用して SQL Server データベースを Windows から Linux に移行する」を参照してください。
SSMS を使用してデータベースをエクスポートする
Windows の検索ボックスに「Microsoft SQL Server Management Studio」と入力して SSMS を起動し、デスクトップ アプリを選択します。
オブジェクト エクスプローラーでソース データベースに接続します。 ソースデータベースは、Linux、Windows上で動作するMicrosoft SQL Server、またはオンプレミスまたはクラウド上のDockerコンテナでホスト可能です。 また、Azure SQL DatabaseやAzure Synapse Analyticsでも利用できます。
オブジェクト エクスプローラーのソースデータベースを右クリックし、タスクを指して「データ層アプリケーションをエクスポート...」を選択します。
エクスポート ウィザードで [次へ] を選び、[設定] タブで、BACPAC ファイルをローカル ディスクの場所または Azure BLOB に保存するようにエクスポートを構成します。
既定では、データベース内のすべてのオブジェクトがエクスポートされます。 詳細タブを選択し、エクスポートしたいデータベースオブジェクトを選択します。
[次へ] を選び、[完了] を選びます。
.bacpac ファイルが選択した場所に正常に作成され、ターゲット データベースにインポートする準備が整います。
SSMS を使用してデータベースをインポートする
Windows の検索ボックスに「Microsoft SQL Server Management Studio」と入力して SSMS を起動し、デスクトップ アプリを選択します。
オブジェクト エクスプローラーでターゲット サーバーに接続します。 ターゲットはLinux、Windows、またはDockerコンテナ上で動作するMicrosoft SQL Serverで、オンプレミスまたはクラウド上のいずれかです。 また、Azure SQL DatabaseやAzure Synapse Analyticsでも使われます。
オブジェクト エクスプローラーで Databases フォルダーを右クリックし、[データ層アプリケーションのインポート] を選択します。
ターゲット サーバーにデータベースを作成するには、ローカル ディスクから BACPAC ファイルを指定するか、BACPAC ファイルをアップロードした Azure ストレージ アカウントとコンテナーを選択します。
データベースの新しいデータベース名を指定します。 Azure SQL Database にデータベースをインポートする場合は、[Microsoft Azure SQL Database のエディション] (サービス レベル)、[データベースの最大サイズ]、および [サービスの目標] (パフォーマンス レベル) を設定します。
[次へ] を選び、[完了] を選んで、ターゲット サーバーの新しいデータベースに BACPAC ファイルをインポートします。
.bacpac ファイルがインポートされ、指定したターゲット サーバーに新しいデータベースが作成されます。
SqlPackage コマンド ライン ユーティリティ
また、 SqlPackage コマンドラインユーティリティを使ってBACPACファイルのエクスポート・インポートも可能です。
次のコマンド例では、BACPAC ファイルをエクスポートします。
SqlPackage /a:Export /ssn:tcp:<your_server> /sdn:<your_database> /su:<username> /sp:<password> /tf:<path_to_bacpac>
.bacpac ファイルからデータベース スキーマとユーザー データをインポートするには、次のコマンドを使用します。
SqlPackage /a:Import /tsn:tcp:<your_server> /tdn:<your_database> /tu:<username> /tp:<password> /sf:<path_to_bacpac>