エクスポート (0) 印刷
すべて展開

方法: DAC パッケージを使用してデータベースを Azure SQL Database に移行する

更新日: 2014年10月

データ層アプリケーション (DAC) では、データベースのスキーマ、コード、および構成を単一のパッケージ ファイルに簡単に抽出できます。そして、この DAC パッケージは、以降の開発作業のために、データベースの新しいコピーを別のシステムに配置したり、データベース定義を SQL Server Data Tools (SSDT) プロジェクトにインポートするために使用できます。DAC パッケージには、データベース内のオブジェクトの定義のみが含まれ、データは含まれません。

データ層アプリケーション (DAC) とは、データ層オブジェクトを開発、配置、および管理するための自己完結型のコンポーネントです。DAC を使用すると、データ層の開発者やデータベース管理者は、データベース オブジェクトやインスタンス オブジェクトなどの SQL Server オブジェクトを DAC パッケージ (.dacpac ファイル) と呼ばれる 1 つのエンティティにパッケージ化することができます。DAC パッケージ ファイルを生成するには、2 つの方法があります。SSDT データベース プロジェクトをビルドして DAC パッケージを作成する方法と、既存のデータベースから DAC パッケージを抽出する方法です。DAC パッケージは、データベース オブジェクトの定義の XML 表現、またはデータベースのメタデータを含む圧縮ファイルです。このパッケージを配置することによって、データベースのコピーを Microsoft Azure SQL データベースに作成できます。

DAC パッケージは、SQL Server Data Tools と共に使用して、Azure SQL データベースへのデータベースの移行に必要なデータベースの変更を実装するのに適したツールです。DAC パッケージをインポートしてデータベース プロジェクトを作成し、必要な変更を加えたら、プロジェクトをビルドして新しい DAC パッケージを作成します。

移行の際に DAC パッケージと SSDT データベース プロジェクトを使用してスキーマを転送する方法は、移行プロジェクトの終了後に追加の開発作業が発生する場合に適しています。DAC パッケージはバージョン管理されるため、DAC アップグレード プロセスがあります。DAC パッケージの 1 つのバージョンを使用して、移行時にスキーマを転送できます。移行後に追加の開発作業を行う場合、DAC パッケージの新しいバージョンを作成して、実稼働データベースのアップグレードに使用することができます。DAC のアップグレードの詳細については、「データ層アプリケーションのアップグレード」を参照してください。

[Top]

DAC パッケージにはテーブル データが含まれないため、スキーマ定義の移行にのみ使用できます。データを移行するには、別の処理を使用する必要があります。データ転送処理の選択の詳細については、「Azure SQL Database Migration Processes」を参照してください。

移行時にデータベースの変更が必要ない場合は、代わりに DAC BACPAC ファイルを抽出して、データベース定義とデータの両方を移行することができます。BACPAC ファイルには、JavaScript Object Notation (JSON) でエンコードされたテーブル データのセットと、DAC パッケージ内のスキーマ定義と同じものの両方が含まれています。詳細については、「方法: DAC BACPAC を使用してデータベースを Azure SQL データベースに移行する」を参照してください。

SSDT データベース プロジェクト内で、配置前および配置後のスクリプトを指定できます。これらのスクリプトは Transact-SQL で記述され、デプロイメント後のスクリプトでデータを挿入するなど、任意の処理を実行できます。ただし、DAC パッケージ配置スクリプトを使用して大量のデータを挿入することはお勧めしません。

[Top]

DAC パッケージを使用するには、DAC Framework と呼ばれるクライアント DAC ソフトウェアをインストールしておく必要があります。DAC Framework は、SQL Server Data Tools と、SQL Server Management Studio などの SQL Server ユーティリティに含まれています。Azure SQL データベース を使用する場合、使用する DAC Framework の推奨バージョンは、SQL Server Data Tools および SQL Server 2012 に付属するバージョンです。また、SQL Server 2012 Feature Pack から、次の 3 つのパッケージをインストールすると、DAC Framework の以前のバージョンをアップグレードすることができます。

  • Microsoft SQL Server 2012 用 Microsoft システム CLR 型

  • Microsoft SQL Server 2012 Transact-SQL Script DOM

  • Microsoft SQL Server 2012 Data-tier Application Framework

DAC Framework のバージョンと SQL Server のバージョンの互換性については、「SQL Server オブジェクトとバージョンの DAC サポート」を参照してください。

[Top]

SQL Serverに Azure SQL データベース のデータベース スキーマを移行するには、まず、既存のデータベースからパッケージを抽出し、Azure SQL データベースでサポートされていないオブジェクトの依存関係を削除します。次に、Azure SQL データベースに DAC パッケージを配置します。

  1. SQL Server データベースから DAC パッケージを抽出する:

    PowerShell スクリプトか、SQL Server Management Studioデータ層アプリケーションの抽出ウィザードを使用すると、SQL Server データベース エンジンの既存のデータベースから DAC パッケージを抽出できます。前提条件および抽出方法については、「データベースからの DAC の抽出」を参照してください。

    抽出の主な手順は次のとおりです。

    1. DAC のアプリケーション名、バージョン、説明、パッケージ ファイルの場所など、DAC のプロパティを設定します。

    2. すべてのデータベース オブジェクトが DAC でサポートされていることを確認します。

    3. パッケージをビルドします。

  2. Azure SQL データベースにデプロイする前に DAC パッケージを検証する:

    DAC パッケージを運用環境に配置する前にパッケージの内容を確認するようにしてください。外部で開発されたパッケージの場合は特に注意が必要です。詳細については、「DAC パッケージの検証」を参照してください。

    DAC パッケージでサポートされているオブジェクトの種類が、Azure SQL データベースでサポートされない場合があります。Azure SQL データベースにパッケージをデプロイする前に Azure SQL Database Compatibility Assessment サービスを使用すると、Azure SQL データベースでサポートされていないオブジェクトが DAC パッケージに含まれるかどうかを判断できます。このサービスの使用方法とチュートリアルについては、「Azure SQL Database Compatibility Assessment Service」を参照してください。

    Azure SQL データベースにデータベースを移行する前に、DAC の抽出処理または Azure SQL Database Compatibility Assessment サービスによって例外として報告された、オブジェクトの依存関係を削除します。これらのオブジェクトをデータベースから削除すると、データベースを使用するアプリケーションの修正が必要になる可能性があります。

  3. Azure SQL データベースに DAC パッケージを配置する:

    PowerShell スクリプトか、SQL Server Management Studioデータ層アプリケーションの配置ウィザードを使用すると、DAC パッケージを ssSDS にデプロイできます。前提条件および配置方法については、「データ層アプリケーションの配置」を参照してください。データ層アプリケーションの配置ウィザードは、Azure SQL Database Management Portal から起動することもできます。詳細については、「データベースの管理 (Management Portal for Azure SQL Database)」を参照してください。

    配置の主な手順は次のとおりです。

    1. DAC パッケージを選択します。

    2. パッケージの内容を確認します。

    3. データベースの配置プロパティで Microsoft Azure SQL データベースのデータベースを指定します。

    4. パッケージを配置します。

[Top]

表示:
© 2014 Microsoft