データベースからの DAC の抽出Extract a DAC From a Database

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

データ層アプリケーションの抽出ウィザード または Windows PowerShell スクリプトを使用すると、既存の SQL Server データベースからデータ層アプリケーション (DAC) パッケージを抽出できます。Use either the Extract Data-tier Application Wizard or a Windows PowerShell script to extract a data-tier application (DAC) package from an existing SQL Server database. 抽出プロセスでは、データベース オブジェクトの定義とそれに関連するインスタンスレベルの要素を格納した DAC パッケージ ファイルが作成されます。The extraction process creates a DAC package file that contains definitions of the database objects and their related instance-level elements. たとえば、DAC パッケージ ファイルには、データベース テーブル、ストアド プロシージャ、ビュー、ユーザー、およびデータベース ユーザーにマップされているログインが含まれます。For example, a DAC package file contains the database tables, stored procedures, views, and users, along with the logins that map to the database users.

アンインストールの準備Before you begin

SQL DatabaseSQL Database、または SQL Server 2000 (8.x)SQL Server 2000 (8.x) Service Pack 4 以降のインスタンスに存在するデータベースから DAC を抽出できます。You can extract a DAC from databases residing on instances of SQL DatabaseSQL Database, or SQL Server 2000 (8.x)SQL Server 2000 (8.x) Service Pack 4 or later. DAC から配置されたデータベースに対して抽出プロセスが実行された場合、データベース内のオブジェクトの定義のみが抽出されます。If the extraction process is run against a database that was deployed from a DAC, only the definitions of the objects in the database are extracted. プロセスは msdb ( マスター SQL DatabaseSQL Database) で登録された DAC を参照しません。The process does not reference the DAC registered in msdb (master in SQL DatabaseSQL Database). 抽出プロセスは、データベース エンジンの現在のインスタンスの DAC 定義を登録しません。The extraction process does not register the DAC definition in the current instance of the Database Engine. DAC の登録の詳細については、「 Register a Database As a DAC」を参照してください。For more information about registering a DAC, see Register a Database As a DAC.

制限事項と制約事項Limitations and restrictions

DAC を抽出できるのは、 SQL DatabaseSQL Database、または SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 4 (SP4) 以降のデータベースに限られます。A DAC can only be extracted from a database in SQL DatabaseSQL Database, or SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 4 (SP4) or later. DAC でサポートされていないオブジェクトまたは包含ユーザーがデータベースに存在する場合は、DAC を抽出できません。You cannot extract a DAC if the database has objects that are not supported in a DAC, or contained users. DAC でサポートされるオブジェクトの種類の詳細については、「 DAC Support For SQL Server Objects and Versions」を参照してください。For more information about the types of objects supported in a DAC, see DAC Support For SQL Server Objects and Versions.

PermissionsPermissions

DAC を抽出するには、少なくとも ALTER ANY LOGIN 権限とデータベース スコープの VIEW DEFINITION 権限、および sys.sql_expression_dependenciesに対する SELECT 権限が必要です。Extracting a DAC requires at least ALTER ANY LOGIN and database scope VIEW DEFINITION permissions, as well as SELECT permissions on sys.sql_expression_dependencies. DAC を抽出できるのは、DAC を抽出するデータベースの database_owner 固定データベース ロールのメンバーでもある、securityadmin 固定サーバー ロールのメンバーです。Extracting a DAC can be done by members of the securityadmin fixed server role who are also members of the database_owner fixed database role in the database from which the DAC is extracted. sysadmin 固定サーバー ロールのメンバーまたは sa という組み込みの SQL Server システム管理者アカウントも DAC を抽出できます。Members of the sysadmin fixed server role or the built-in SQL Server system administrator account named sa can also extract a DAC.

データ層アプリケーションの抽出ウィザードの使用Using the Extract Data-tier Application Wizard

ウィザードを使用して DAC を抽出するにはTo Extract a DAC Using a Wizard

  1. オブジェクト エクスプローラーで、DAC の抽出元となるデータベースを含んだインスタンスのノードを展開します。In Object Explorer, expand the node for the instance containing the database from which the DAC is to be extracted.

  2. [データベース] ノードを展開します。Expand the Databases node.

  3. DAC の抽出元となるデータベースのノードを右クリックし、[タスク] をポイントして [データ層アプリケーションの抽出] を選択します。Right-click the node for the database from which the DAC is to be extracted, point to Tasks, and then select Extract Data-tier Application...

  4. ウィザードの各ダイアログの手順を実行します。Complete the wizard dialogs:

    1. [説明] ページIntroduction Page

    2. [データの選択] ページSelect Data Page

    3. [プロパティの設定] ページSet Properties Page

    4. [検証と概要] ページValidation and Summary Page

    5. [パッケージのビルド] ページBuild Package Page

ウィザードの [説明] ページWizard introduction page

このページでは、データ層アプリケーションを抽出する手順について説明します。This page describes the steps for extracting a data-tier application.

[次回からこのページを表示しない]Do not show this page again. : 今後このページを表示しないようにするには、このチェック ボックスをオンにします。- Click the check box to stop the page from being displayed in the future.

[次へ >] : [方法の選択] ページに進みます。Next > - Proceeds to the Choose Method page.

[キャンセル] : データベースからデータ層アプリケーションを抽出せずにウィザードを終了します。Cancel - Ends the wizard without extracting a data-tier application from the database.

[抽出ウィザード][Extract Wizard]

Select data pageSelect data page

データ層アプリケーション (DAC) パッケージ ファイルに含める参照データを選択できます。Select the reference data that you want to include in your data-tier application (DAC) package file. DAC パッケージにデータを含めることは必須ではありません。Including data in your DAC package is optional. DAC パッケージには、データベースに関連するサポート対象のデータベース オブジェクトおよびインスタンス オブジェクトのスキーマがすべて、既に含まれています。The DAC package will already include the schema of all supported database objects and instance objects related to your database.

DAC パッケージ ファイルには最大 10 MB の参照データを含めることができます。You can include up to 10 MB of reference data in your DAC package file. ただし、DAC に含まれるテーブルの場合、 imagevarchar(max) などのバイナリ ラージ オブジェクト (BLOB) データ型を含めることはできません。However, for tables to be included in the DAC, they may not contain binary large object (BLOB) data types such as image or varchar(max). 別のデータベースへ転送するためにより大量のデータを抽出するには、SQL Server Integration Services、一括コピー ユーティリティ、または他の多くのデータ移行方法のいずれかを使用します。To extract larger amounts of data for transferring to another database, use SQL Server Integration Services, the bulk copy utility, or one of many other data migration techniques.

[データベース テーブル] : DAC パッケージに含めるデータが含まれたデータベース テーブルの横にあるチェック ボックスをオンにします。Database table - Select the check box next to the database tables which contain the data that you want to include in your DAC package. 10,000 行以下のテーブルを最大 10 個選択できます。You can select up to ten tables that have 10,000 rows or less.

[抽出ウィザード][Extract Wizard]

Set properties pageSet properties page

ウィザードのこのページでは、データ層アプリケーション (DAC) に関する情報を設定します。Use this page of the wizard to describe the data-tier application (DAC). これらのプロパティは、DAC を識別し、他の DAC と区別するために使用されます。These properties are used to identify the DAC and help distinguish it from others.

[名前] : この名前で、DAC を識別します。Name - This name identifies the DAC. DAC パッケージ ファイルと異なる名前を設定できますが、アプリケーションを識別できる名前である必要があります。It can be different than the name of the DAC package file and should describe your application. たとえば、データベースを財務アプリケーションで使用する場合は、"DAC Finance" などの名前を付けます。For example, if the database is used for a finance application, you may wish to name the DAC Finance.

[バージョン (xx.xx.xx.xx という形式で、x は数字)] : DAC のバージョンを表す数値。Version (use xx.xx.xx.xx, where x is a number) - A numeric value that identifies the version of the DAC. DAC のバージョンは、開発者が操作している DAC のバージョンを特定するために Visual Studio で使用します。The DAC version is used in Visual Studio to identify the version of the DAC that developers are working on. DAC を配置すると、バージョンは msdb データベースに格納され、後で [データ層アプリケーション] SQL Server Management StudioSQL Server Management Studioノードの下に表示できます。When deploying a DAC, the version is stored in the msdb database and can later be viewed under the Data-tier Applications node in SQL Server Management StudioSQL Server Management Studio.

[説明] - 省略可能です。Description: - Optional. DAC の説明です。Describes the DAC. DAC を配置すると、説明は msdb データベースに格納され、後で [データ層アプリケーション] Management StudioManagement Studioノードの下に表示できます。When deploying a DAC, the description is stored in the msdb database and can later be viewed under the Data-tier Applications node in Management StudioManagement Studio.

[DAC パッケージ ファイルに保存 (.dacpac 拡張子をファイル名に含める)] : DAC を拡張子が .dacpac の DAC パッケージ ファイルに保存します。Save to DAC package file (include .dacpac extension with file name): - Saves the DAC to a DAC package file, with a .dacpac extension. [参照] ボタンをクリックしてファイルの名前と場所を指定します。Click the Browse button to specify a name and location for the file.

[既存のファイルの上書き] : 同じ名前の DAC パッケージ ファイルが既に存在する場合にそのファイルを置き換えるには、このチェック ボックスをオンにします。Overwrite existing file - Select this check box to replace the DAC package file if one already exists with the same name.

Validation and summary pageValidation and summary page

このページでは、すべてのデータベース オブジェクトがデータ層アプリケーション (DAC) でサポートされているかどうかを検証します。On this page, the wizard validates that all database objects are supported by a data-tier application (DAC). また、データベース オブジェクト間の依存関係を確認して、DAC に正常に含めることができるオブジェクトのセットを判断します。It also checks dependencies across database objects to determine the set of objects that can be successfully included in the DAC. その後、検証レポートと、このウィザードで選択したオプションの概要を表示します。After that, it displays the validation report and summarizes the options that you have selected in this wizard. オプションを変更するには、 [戻る] をクリックします。To change an option, click Previous. DAC の抽出を開始するには、 [次へ] をクリックします。To begin extracting a DAC, click Next.

注! 1 つ以上のオブジェクトが DAC でサポートされていない場合は、 [次へ] ボタンは無効になり、抽出プロセスを続行できません。NOTE! If one or more objects are not supported by a DAC, then the Next button is disabled and the extraction process may not continue. その場合は、サポートされていないオブジェクトを削除した後に、このウィザードを再度実行することをお勧めします。In such cases, it is recommended to remove the non-supported objects and then run this wizard again.

[概要] : 選択したオプションの概要が [DAC のプロパティ] の下に表示されます。Summary - A summary of the options you have selected are listed under DAC properties. 検証の結果は [DAC オブジェクト] の下に表示されます。The results of the validation are listed under DAC objects. 検証の結果には、次の 3 種類があります。There are three types of results from the validation:

  • [DAC に正常に含まれるオブジェクト]: これらのオブジェクトとその依存関係はサポートされており、DAC に正常に含めることができます。Objects included in DAC successfully: these objects and their dependencies are supported, and can be included in the DAC successfully.

  • [DAC に含まれるオブジェクト (警告あり)]: これらのオブジェクトはサポートされていますが、DAC でサポートされていない他のオブジェクトに依存しています。Objects included in DAC with warnings: these objects are supported, but depend on other objects that are not supported in a DAC.

  • [DAC に含まれないオブジェクト]: これらのオブジェクトはサポートされていないため、DAC を正常に抽出する前にデータベースから削除する必要があります。Objects not included in DAC: these objects are not supported and must be removed from the database before successfully extracting a DAC.

検証プロセスでは、複数レベルで依存関係の確認が行われます。The validation process checks multiple levels of dependencies. たとえば、あるストアド プロシージャがサポートされていない CLR データ型を使用するテーブルに依存している場合、そのストアド プロシージャは [DAC に含まれるオブジェクト (警告あり)] の下に表示されます。For example, if a stored procedure depends on a table that uses the unsupported CLR data type, the stored procedure will be listed under Objects included in DAC with warnings.

1 つ以上のオブジェクトが DAC でサポートされていない場合は、 [次へ] ボタンは無効になり、抽出プロセスを続行できません。If one or more objects are not supported by a DAC, then the Next button is disabled and the extraction process will not continue. その場合は、サポートされていないオブジェクトを削除した後に、このウィザードを再度実行することをお勧めします。In such cases, it is recommended to remove the objects that are not supported and then run this wizard again.

[レポートの保存] : 概要の [DAC のオブジェクト] ノードの下に表示されるすべてのオブジェクトの一覧を示す HTML ベースのファイルを保存できるようにします。Save Report - Enables you to save an HTML-based file that lists all of the objects under the DAC Objects node in the summary. このレポートは、データベース オブジェクトの一部が DAC でサポートされていない場合に役立ちます。This report can be useful when some of your database objects are not supported in a DAC. DAC の抽出を再試行する前に、このレポートを使用してサポートされていないオブジェクトを変更または削除します。Use the report to change or remove objects that are not supported, before trying to extract the DAC again.

Build package pageBuild package page

このページでは、データ層アプリケーション (DAC) を抽出するウィザードの進行状況を監視できます。Use this page to monitor the progress of the wizard as it extracts the data-tier application (DAC).

[アクション] : [DAC パッケージ ファイルの作成と保存] では、SQL Server データベースから DAC が抽出されます。Action - During the Create and save DAC package file action, the wizard extracts a DAC from your SQL Server database. その後、DAC パッケージがメモリ内に作成され、指定した場所に保存されます。Then, a DAC package is created in memory and saved to the location you specified. [結果] 列のリンクをクリックすると、対応する手順の結果を確認できます。Click on the links in the Result column to see the outcome of the corresponding step.

[レポートの保存] : クリックすると、ウィザードの進行状況の結果がファイルに保存されます。Save Report - Click to save the results of the wizard's progress to a file.

[完了] : 処理が完了した後やエラーが発生した場合にクリックしてウィザードを閉じます。Finish - Click to close the wizard after processing has completed, or if an error occurs.

PowerShell を使用して DAC を抽出するExtract a DAC using PowerShell

PowerShell スクリプトで Extract() メソッドを使用してデータベースから DAC を抽出するにはTo extract a DAC from a database using the Extract() method in a PowerShell script

  1. SMO サーバー オブジェクトを作成し、それを DAC の抽出元データベースが含まれているインスタンスに設定します。Create a SMO Server object and set it to the instance that contains the database from which the DAC is to be extracted.

  2. データベースの名前を指定する変数を追加します。Add a variable that specifies the name of the database.

  3. DAC のメタデータ (DAC 名、バージョン、説明など) を指定します。Specify the metadata for the DAC, such as the DAC name, version, and description.

  4. 抽出された DAC パッケージ ファイルのパスとファイル名を指定します。Specify the path and file name for the extracted DAC package file.

  5. 上で指定した情報を使用して Extract メソッドを実行します。Run the Extract method with the information specified above.

例 (PowerShell)Example (PowerShell)

次の例では、MyDB という名前のデータベースから MyApplication という名前の DAC を抽出します。The following example extracts a DAC named MyApplication from a database named MyDB.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$srv = get-item .  
  
## Specify the database to extract to a DAC.  
$dbname = "MyDB"  
  
## Specify the DAC metadata.  
$applicationname = "MyApplication"  
$version = "1.0.0.0"  
$description = "This DAC defines the database used by my application."  
  
## Specify the location and name for the extracted DAC package.  
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"  
  
## Extract the DAC.  
$extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)  
$extractionunit.Description = $description  
$extractionunit.Extract($dacpacPath)  

参照See also

Data-tier Applications