2011/07/28

VMM2012BETA > SQL Server > DAC (.dacpac) てなんだ!?

System Center Virtual Machine Manager (SCVMM) 2012 Beta のサービス展開の、データベース層の自動展開の仕組みを理解するため、その要素技術である SQL Server 2008 R2 の Sysprep 対応およびデータ層アプリケーション (DAC)についてのお勉強です。

VMM2012BETA > Server App-V > Apache HTTP Server をサービスとして自動展開してみた
http://yamanxworld.blogspot.com/2011/07/vmm2012beta-server-app-v-apache-http.html

VMM2012BETA > Web Deploy > VMM2012 で Web Deploy
http://yamanxworld.blogspot.com/2011/07/vmm2012beta-web-deploy-vmm2012-web.html


今日は、SQL Server 2008 R2 のデータ層アプリケーション (DAC) を使用したデータベースの配置について...

SCVMM 2012 Beta 用のサービス展開用のサンプル Petshop アプリケーションでは、データ層のデータベースを準備するのに DAC というものを利用しており、ライブラリ共有には .dacpac という拡張子のファイル (DAC パッケージ) がいくつか用意されています。

DAC (Data-tier Application Component、データ層アプリケーション) は、データベースのスキーマとオブジェクト (データは除く) を簡単に配置するためのフレームワークです。詳しくは、以下を参照してください。

MSDN Library > データ層アプリケーションを配置する方法
http://msdn.microsoft.com/ja-jp/library/ee210569.aspx



DAC パッケージ (.dacpac) は、SQL Management Studio を使用して簡単に作成できます。

「プロパティの設定」の画面で、アプリケーション名を入力し、パッケージの保存先パスを確認して、パッケージ化します。

何でもかんでもパッケージ化できるというわけではなく、DAC がサポートしていない要素 (拡張プロパティなど) があるとエラーになります。

SSQL Server 2008 R2 用のサンプル データベース AdventureWorks はパッケージ化できませんでした。そこで、MyDB というデータベースを作成し、簡単なテープルを登録して、パッケージ化してみました。

DAC パッケージ (.dacpac) は、同じく SQL Server Management Studio を使用して、簡単に配置することができます。


DAC パッケージの配置を自動化することもできます。SQL Server 2008 R2 および Windows Server 2008 R2 の標準機能だけで行うには、PowerShell を使用した方法があります。スクリプトは結構長くなります。

今回作成した MyDB.dacpac は、次回、SCVMM 2012 Beta でテストするために、ライブラリ共有に保存しておきます。

← もどるつづく →

0 件のコメント: