Vorgehensweise: Extrahieren einer DAC aus einer Datenbank

Verwenden Sie entweder den Assistenten zum Extrahieren von Datenebenenanwendungen oder ein Windows PowerShell-Skript, um ein Datenebenenanwendungspaket (DAC-Paket) aus einer vorhandenen SQL Server-Datenbank zu extrahieren. Bei der Extraktion wird eine DAC-Paketdatei erstellt, die Definitionen der Datenbankobjekte und ihrer verwandten Elemente auf Instanzebene enthält. Eine DAC-Paketdatei enthält z. B. die Datenbanktabellen, gespeicherten Prozeduren, Sichten und Benutzer zusammen mit den Anmeldenamen, die den Datenbankbenutzern zugeordnet sind.

Sie können DAC aus Datenbanken extrahieren, die sich auf Instanzen von SQL Azure oder SQL Server 2005 Service Pack 4 (SP4) oder höher befinden.

Der Assistent zum Extrahieren von Datenebenenanwendungen registriert keine DAC-Definition in der aktuellen Instanz des Datenbankmoduls. Weitere Informationen zum Registrieren einer DAC finden Sie unter Vorgehensweise: Registrieren einer Datenbank als DAC.

Extrahieren einer DAC mit PowerShell

Erstellen und Ausführen eines Skripts

  1. Erstellen Sie eine Datei namens ExtractDAC.ps1.

  2. Fügen Sie Code hinzu, um ein SMO-Serverobjekt zu erstellen, und legen Sie es auf die Instanz mit der Datenbank fest, aus der Sie eine DAC extrahieren möchten. Mit dem folgenden Beispiel wird ein Serverobjekt auf die Standardinstanz auf dem lokalen Computer festgelegt:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  3. Fügen Sie Code zum Angeben der Datenbank hinzu. In diesem Beispiel wird eine Datenbank namens "MyDB" angegeben:

    ## Specify the database to extract to a DAC.
    $dbname = "MyDB"
    
  4. Geben Sie die Metadaten für die DAC an. In diesem Beispiel werden Name, Version und Beschreibung der DAC angegeben:

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  5. Geben Sie den Pfad- und Dateinamen für die extrahierte DAC-Paketdatei an.

    ## Specify the location and name for the extracted DAC package.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    
  6. Fügen Sie Code hinzu, um die Extrahierungsmethode mit den oben angegebenen Informationen auszuführen.

    ## Extract the DAC.
    $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
    $extractionunit.Description = $description
    $extractionunit.Extract($dacpacPath)
    
  7. Führen Sie ExtractDAC.ps1 entweder von einer PowerShell-Sitzung aus, in die Sie die SQL Server PowerShell-Snap-Ins geladen haben, oder verwenden Sie das Eingabeaufforderungs-Hilfsprogramm sqlps.

Assistent zum Extrahieren von Datenebenenanwendungen

So öffnen Sie den Assistenten zum Extrahieren von Datenebenenanwendungen

  1. Erweitern Sie im Objekt-Explorer Datenbanken, klicken Sie mit der rechten Maustaste auf eine Datenbank, zeigen Sie auf Tasks, und klicken Sie dann auf Datenebenenanwendung extrahieren.

  2. Führen Sie die Schritte im Assistenten aus, um ein DAC-Paket auf Grundlage der von Ihnen ausgewählten Datenbank zu erstellen. Weitere Informationen finden Sie unter F1-Hilfe für den Assistenten zum Extrahieren von Datenebenenanwendungen.

Änderungsverlauf

Aktualisierter Inhalt

Abschnitt zur Verwendung von PowerShell wurde hinzugefügt.