Extrahieren einer DAC aus einer DatenbankExtract a DAC From a Database

GILT FÜR: jaSQL ServerjaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Verwenden Sie entweder den Assistenten zum Extrahieren von Datenebenenanwendungen oder ein Windows PowerShell-Skript, um ein Datenebenenanwendungs-Paket (DAC) aus einer vorhandenen SQL Server-Datenbank zu extrahieren.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. Bei der Extraktion wird eine DAC-Paketdatei erstellt, die Definitionen der Datenbankobjekte und ihrer verwandten Elemente auf Instanzebene enthält.The extraction process creates a DAC package file that contains definitions of the database objects and their related instance-level elements. Eine DAC-Paketdatei enthält z. B. die Datenbanktabellen, gespeicherten Prozeduren, Sichten und Benutzer zusammen mit den Anmeldenamen, die den Datenbankbenutzern zugeordnet sind.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.

VorbereitungenBefore you begin

Sie können DAC aus Datenbanken extrahieren, die sich auf Instanzen von SQL-DatenbankSQL Databaseoder SQL Server 2000 (8.x)SQL Server 2000 (8.x) Service Pack 4 (SP4) oder höher befinden.You can extract a DAC from databases residing on instances of SQL-DatenbankSQL Database, or SQL Server 2000 (8.x)SQL Server 2000 (8.x) Service Pack 4 or later. Wenn der Extrahierungsprozess für eine Datenbank ausgeführt wird, die über eine DAC bereitgestellt wurde, werden nur die Definitionen der Objekte in der Datenbank extrahiert.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. Der Prozess verweist nicht auf die in msdb (master in SQL-DatenbankSQL Database) registrierte DAC.The process does not reference the DAC registered in msdb (master in SQL-DatenbankSQL Database). Der Extrahierungsprozess registriert die DAC-Definition nicht in der aktuellen Instanz der Datenbank-Engine.The extraction process does not register the DAC definition in the current instance of the Database Engine. Weitere Informationen zum Registrieren einer DAC finden Sie unter Register a Database As a DAC.For more information about registering a DAC, see Register a Database As a DAC.

EinschränkungenLimitations and restrictions

Eine DAC kann nur aus einer Datenbank in SQL-DatenbankSQL Databaseoder SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 4 (SP4) oder höher extrahiert werden.A DAC can only be extracted from a database in SQL-DatenbankSQL Database, or SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 4 (SP4) or later. Eine DAC kann nicht registriert werden, wenn die Datenbank in einer DAC nicht unterstützte Objekte oder enthaltene Benutzer enthält.You cannot extract a DAC if the database has objects that are not supported in a DAC, or contained users. Weitere Informationen zu den in einer DAC unterstützten Objekttypen finden Sie unter 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.

BerechtigungenPermissions

Zum Registrieren einer DAC sind mindestens die ALTER ANY LOGIN-Berechtigung und die VIEW DEFINITION-Berechtigung auf Datenbankebene sowie SELECT-Berechtigungen für sys.sql_expression_dependencieserforderlich.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. Zum Extrahieren einer DAC sind nur Mitglieder der festen Serverrolle securityadmin berechtigt, die ebenfalls Mitglieder der festen Datenbankrolle database_owner in der Datenbank waren, aus der die DAC extrahiert wird.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. Mitglieder der festen Serverrolle „sysadmin“ oder das integrierte SQL Server-Systemadministratorkonto sa sind ebenfalls berechtigt, eine DAC zu extrahieren.Members of the sysadmin fixed server role or the built-in SQL Server system administrator account named sa can also extract a DAC.

Verwenden des Assistenten zum Extrahieren von DatenebenenanwendungenUsing the Extract Data-tier Application Wizard

So extrahieren Sie eine DAC mithilfe eines AssistentenTo Extract a DAC Using a Wizard

  1. Erweitern Sie im Objekt-Explorerden Knoten für die Instanz, die die Datenbank enthält, aus der DAC extrahiert werden soll.In Object Explorer, expand the node for the instance containing the database from which the DAC is to be extracted.

  2. Erweitern Sie den Knoten Datenbanken .Expand the Databases node.

  3. Klicken Sie mit der rechten Maustaste auf den Knoten für die Datenbank, aus der die DAC extrahiert werden soll, zeigen Sie auf Tasks, und wählen Sie dann Datenebenenanwendung extrahieren... aus.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. Bearbeiten Sie die Dialogfenster des Assistenten:Complete the wizard dialogs:

    1. Seite "Einführung"Introduction Page

    2. Seite "Daten auswählen"Select Data Page

    3. Seite "Eigenschaften festlegen"Set Properties Page

    4. Seite "Überprüfung und Zusammenfassung"Validation and Summary Page

    5. Seite "Paket erstellen"Build Package Page

Seite „Einführung“ des AssistentenWizard introduction page

Auf dieser Seite werden die Schritte zum Extrahieren einer Datenebenenanwendung beschrieben.This page describes the steps for extracting a data-tier application.

Diese Seite nicht mehr anzeigen.Do not show this page again. – Aktivieren Sie dieses Kontrollkästchen, damit die Seite in Zukunft nicht mehr angezeigt wird.- Click the check box to stop the page from being displayed in the future.

Weiter >: Wechselt zur Seite Methode auswählen.Next > - Proceeds to the Choose Method page.

Abbrechen: Beendet den Assistenten, ohne eine Datenebenenanwendung aus der Datenbank zu extrahieren.Cancel - Ends the wizard without extracting a data-tier application from the database.

[Assistent zum Extrahieren][Extract Wizard]

Select data pageSelect data page

Wählen Sie die Verweisdaten aus, die Sie in die Paketdatei der Datenebenenanwendung (DAC) einschließen möchten.Select the reference data that you want to include in your data-tier application (DAC) package file. Das Einschließen von Daten in das DAC-Paket ist optional.Including data in your DAC package is optional. Das DAC-Paket enthält bereits das Schema aller unterstützten Datenbankobjekte und Instanzobjekte für die Datenbank.The DAC package will already include the schema of all supported database objects and instance objects related to your database.

In die DAC-Paketdatei können Sie bis zu 10 MB Verweisdaten einschließen.You can include up to 10 MB of reference data in your DAC package file. Bei Tabellen, die in der DAC eingeschlossen werden sollen, dürfen in den Paketen keine Blobdatentypen (Binary Large Object) enthalten sein, z.B. image oder varchar(max).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). Wenn Sie zum Übertragen in eine andere Datenbank größere Datenmengen extrahieren möchten, verwenden Sie SQL Server Integration Services, das Hilfsprogramm zum Massenkopieren oder eines der zahlreichen weiteren Datenmigrationsverfahren.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.

Datenbanktabelle: Aktivieren Sie das Kontrollkästchen neben den Datenbanktabellen mit den Daten, die Sie in das DAC-Paket einschließen möchten.Database table - Select the check box next to the database tables which contain the data that you want to include in your DAC package. Sie können bis zu zehn Tabellen mit jeweils maximal 10.000 Zeilen auswählen.You can select up to ten tables that have 10,000 rows or less.

[Assistent zum Extrahieren][Extract Wizard]

Set properties pageSet properties page

Mithilfe dieser Seite des Assistenten können Sie die Datenebenenanwendung (DAC) beschreiben.Use this page of the wizard to describe the data-tier application (DAC). Diese Eigenschaften werden verwendet, um die DAC zu identifizieren und sie von anderen zu unterscheiden.These properties are used to identify the DAC and help distinguish it from others.

Name: Dieser Name identifiziert die DAC.Name - This name identifies the DAC. Er kann sich vom Namen der DAC-Paketdatei unterscheiden und sollte die Anwendung beschreiben.It can be different than the name of the DAC package file and should describe your application. Wenn die Datenbank z. B. für eine Finanzanwendung verwendet wird, möchten Sie sie möglicherweise "DAC Finanzen" nennen.For example, if the database is used for a finance application, you may wish to name the DAC Finance.

Version (xx.xx.xx.xx verwenden, wobei 'x' einer Zahl entspricht): Ein numerischer Wert, der die Version der DAC identifiziert.Version (use xx.xx.xx.xx, where x is a number) - A numeric value that identifies the version of the DAC. Die DAC-Version wird in Visual Studio verwendet, um die Version der DAC zu identifizieren, an der die Entwickler arbeiten.The DAC version is used in Visual Studio to identify the version of the DAC that developers are working on. Bei der Bereitstellung einer DAC wird die Version in der msdb -Datenbank gespeichert und kann später unter dem Knoten Datenebenenanwendungen in SQL Server Management StudioSQL Server Management Studioangezeigt werden.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.

Beschreibung: Optional.Description: - Optional. Beschreibt die DAC.Describes the DAC. Bei der Bereitstellung einer DAC wird die Beschreibung in einer msdb -Datenbank gespeichert und kann später unter dem Knoten Datenebenenanwendungen in Management StudioManagement Studioangezeigt werden.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.

In DAC-Paketdatei speichern (Erweiterung „.dacpac“ in den Dateinamen aufnehmen): Speichert die DAC in einer DAC-Paketdatei mit .dacpac-Erweiterung.Save to DAC package file (include .dacpac extension with file name): - Saves the DAC to a DAC package file, with a .dacpac extension. Klicken Sie auf die Schaltfläche Durchsuchen , um Namen und Speicherort für die Datei anzugeben.Click the Browse button to specify a name and location for the file.

Vorhandene Datei überschreiben: Aktivieren Sie dieses Kontrollkästchen, um die DAC-Paketdatei zu ersetzen, wenn bereits eine Datei mit demselben Namen vorhanden ist.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

Auf dieser Seite überprüft der Assistent, ob alle Datenbankobjekte von einer Datenebenenanwendung (DAC) unterstützt werden.On this page, the wizard validates that all database objects are supported by a data-tier application (DAC). Er überprüft auch Abhängigkeiten über Datenbankobjekte hinweg, um den Satz von Objekten zu bestimmen, die in DAC enthalten sein können.It also checks dependencies across database objects to determine the set of objects that can be successfully included in the DAC. Anschließend zeigt er den Überprüfungsbericht an und fasst die Optionen zusammen, die Sie in diesem Assistenten aktiviert haben.After that, it displays the validation report and summarizes the options that you have selected in this wizard. Um eine Option zu ändern, klicken Sie auf Zurück.To change an option, click Previous. Um mit dem Extrahieren einer DAC zu beginnen, klicken Sie auf Weiter.To begin extracting a DAC, click Next.

HINWEIS!: Wenn ein oder mehrere Objekte nicht von einer DAC unterstützt werden, wird die Schaltfläche Weiter deaktiviert, und der Extrahierungsprozess wird möglicherweise nicht fortgesetzt.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 solchen Fällen wird empfohlen, die nicht unterstützten Objekte zu entfernen und diesen Assistenten anschließend erneut auszuführen.In such cases, it is recommended to remove the non-supported objects and then run this wizard again.

Zusammenfassung: Unter DAC-Eigenschaftenwird eine Übersicht zu den von Ihnen ausgewählten Optionen aufgeführt.Summary - A summary of the options you have selected are listed under DAC properties. Die Ergebnisse der Überprüfung sind unter DAC-Objekteaufgeführt.The results of the validation are listed under DAC objects. Es gibt drei Typen von Überprüfungsergebnissen:There are three types of results from the validation:

  • Objekte, die erfolgreich in die DAC eingeschlossen wurden: Diese Objekte und ihre Abhängigkeiten werden unterstützt und können erfolgreich in die DAC eingeschlossen werden.Objects included in DAC successfully: these objects and their dependencies are supported, and can be included in the DAC successfully.

  • Objekte, die mit Warnungen in DAC eingeschlossen wurden: Diese Objekte werden unterstützt, sind aber von anderen Objekten abhängig, die nicht in einer DAC unterstützt werden.Objects included in DAC with warnings: these objects are supported, but depend on other objects that are not supported in a DAC.

  • Objekte, die nicht in DAC eingeschlossen wurden: Diese Objekte werden nicht unterstützt und müssen vor dem Extrahieren einer DAC aus der Datenbank entfernt werden.Objects not included in DAC: these objects are not supported and must be removed from the database before successfully extracting a DAC.

Der Überprüfungsprozess überprüft mehrere Ebenen von Abhängigkeiten.The validation process checks multiple levels of dependencies. Wenn eine gespeicherte Prozedur z. B. von einer Tabelle abhängig ist, die den nicht unterstützten CLR-Datentyp verwendet, wird die gespeicherte Prozedur unter Objekte, die mit Warnungen in DAC eingeschlossen wurdenaufgeführt.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.

Wenn ein oder mehrere Objekte nicht von einer DAC unterstützt werden, wird die Schaltfläche Weiter deaktiviert und der Extrahierungsprozess wird nicht fortgesetzt.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 solchen Fällen wird empfohlen, die nicht unterstützten Objekte zu entfernen und diesen Assistenten anschließend erneut auszuführen.In such cases, it is recommended to remove the objects that are not supported and then run this wizard again.

Bericht speichern: Ermöglicht Ihnen das Speichern einer HTML-basierten Datei, in der alle Objekte unter dem Knoten DAC-Objekte in der Zusammenfassung aufgeführt sind.Save Report - Enables you to save an HTML-based file that lists all of the objects under the DAC Objects node in the summary. Dieser Bericht kann nützlich sein, wenn einige der Datenbankobjekte nicht in einer DAC unterstützt werden.This report can be useful when some of your database objects are not supported in a DAC. Mithilfe des Berichts können Sie nicht unterstützte Objekte ändern oder entfernen, bevor Sie erneut versuchen, die DAC zu extrahieren.Use the report to change or remove objects that are not supported, before trying to extract the DAC again.

Build package pageBuild package page

Verwenden Sie diese Seite, um den Status des Assistenten zu überwachen, während die Datenebenenanwendung (DAC) extrahiert wird.Use this page to monitor the progress of the wizard as it extracts the data-tier application (DAC).

Aktion: Während der Aktion DAC-Paketdatei erstellen und speichern extrahiert der Assistent eine DAC aus der SQL Server-Datenbank.Action - During the Create and save DAC package file action, the wizard extracts a DAC from your SQL Server database. Anschließend wird ein DAC-Paket im Arbeitsspeicher erstellt und am von Ihnen angegebenen Speicherort gespeichert.Then, a DAC package is created in memory and saved to the location you specified. Klicken Sie auf die Links in der Spalte Ergebnis , um das Ergebnis des entsprechenden Schritts anzuzeigen.Click on the links in the Result column to see the outcome of the corresponding step.

Bericht speichern: Klicken Sie hier, um den Fortschritt des Assistenten in eine Datei zu speichern.Save Report - Click to save the results of the wizard's progress to a file.

Fertig stellen: Klicken Sie hier, um den Assistenten nach der Verarbeitung oder bei Auftreten eines Fehlers zu schließen.Finish - Click to close the wizard after processing has completed, or if an error occurs.

Extrahieren einer DAC mit PowerShellExtract a DAC using PowerShell

So extrahieren Sie mithilfe der Extract()-Methode in einem PowerShell-Skript eine DAC aus einer DatenbankTo extract a DAC from a database using the Extract() method in a PowerShell script

  1. Erstellen Sie ein SMO-Serverobjekt und legen Sie dieses für die Instanz fest, die die Datenbank enthält, aus der Sie die DAC extrahieren möchten.Create a SMO Server object and set it to the instance that contains the database from which the DAC is to be extracted.

  2. Fügen Sie eine Variable hinzu, die den Namen der Datenbank angibt.Add a variable that specifies the name of the database.

  3. Geben Sie die Metadaten für die DAC an, z. B. DAC-Namen, Version und Beschreibung.Specify the metadata for the DAC, such as the DAC name, version, and description.

  4. Geben Sie den Pfad und den Dateinamen für die extrahierte DAC-Paketdatei an.Specify the path and file name for the extracted DAC package file.

  5. Führen Sie die Extract-Methode mit den oben angegebenen Informationen aus.Run the Extract method with the information specified above.

Beispiel (PowerShell)Example (PowerShell)

Im folgenden Beispiel wird eine DAC mit dem Namen MyApplication aus einer Datenbank mit dem Namen MyDB extrahiert.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)  

Siehe auchSee also

DatenebenenanwendungenData-tier Applications