Löschen einer Datenebenenanwendung

Gilt für:SQL ServerAzure SQL-Datenbank

Sie können eine Datenebenenanwendung entweder mit dem Assistenten zum Löschen von Datenebenenanwendungen oder mit einem Windows PowerShell-Skript löschen. Sie können angeben, ob die zugeordnete Datenbank beibehalten, getrennt oder gelöscht wird.

Vorbereitungen

Wenn Sie eine Instanz einer Datenebenenanwendung (Data-Tier Application, DAC) löschen, legen Sie mit einer von drei Optionen fest, wie mit der der Datenebenenanwendung zugeordneten Datenbank verfahren werden soll. Durch alle drei Optionen werden die Metadaten der DAC-Definition gelöscht. Die Optionen unterscheiden sich in der Art, wie mit der Datenbank, die der Datenebenenanwendung zugeordnet ist, verfahren wird. Der Assistent löscht keine der Objekte auf Instanzebene, wie Anmeldenamen, die der DAC oder Datenbank zugeordnet sind.

Option Datenbankaktionen
Registrierung löschen Die zugeordnete Datenbank bleibt intakt.
Datenbank trennen Die zugeordnete Datenbank wird getrennt. Die Instanz der Datenbank-Engine kann nicht auf die Datenbank verweisen, die Daten und Protokolldateien bleiben jedoch intakt.
Datenbank löschen Die zugeordnete Datenbank wird gelöscht. Die Daten und Protokolldateien werden gelöscht.

Einschränkungen

Nach dem Löschen einer DAC gibt es keinen automatischen Mechanismus zum Wiederherstellen der Metadaten der DAC-Definition oder -Datenbank. Es hängt von der Löschoption ab, wie Sie die DAC-Instanz manuell neu erstellen können.

Option Wiederherstellen der DAC-Instanz
Registrierung löschen Registrieren Sie eine DAC von der Datenbank, die nicht gelöscht wurde.
Datenbank trennen Fügen Sie die Datenbank mithilfe von sp_attachdb oder SQL Server Management Studio erneut an, und registrieren Sie dann eine neue DAC-Instanz aus der Datenbank.
Datenbank löschen Stellen Sie die Datenbank von einer vollständigen Sicherung, die vor dem Löschen der DAC erstellt wurde, wieder her, und registrieren Sie dann eine neue DAC-Instanz von der Datenbank.

Warnung

Wenn Sie eine DAC-Instanz wiederherstellen, indem Sie eine DAC von einer wiederhergestellten oder erneut angefügten Datenbank registrieren, werden einige Teile der ursprünglichen DAC, z. B. die Richtlinie zur Serverauswahl, nicht neu erstellt.

Berechtigungen

Eine DAC kann nur von Mitgliedern der festen Serverrollen sysadmin bzw. serveradmin oder vom Datenbankbesitzer gelöscht werden. Das integrierte SQL Server-Systemadministratorkonto mit dem Namen sa kann auch den Assistenten starten.

Verwenden des Assistenten zum Löschen von Datenebenenanwendungen

So löschen Sie eine DAC mithilfe eines Assistenten

  1. Erweitern Sie im Objekt-Explorerden Knoten für die Instanz, die die zu löschende DAC enthält.

  2. Erweitern Sie den Knoten Verwaltung .

  3. Erweitern Sie den Knoten Datenebenenanwendungen .

  4. Klicken Sie mit der rechten Maustaste auf die zu löschende DAC, und wählen Sie anschließend Datenebenenanwendung löschen... aus.

  5. Bearbeiten Sie die Dialogfenster des Assistenten:

    1. Einführung

    2. Methode auswählen

    3. Zusammenfassung

    4. Datenebenenanwendung löschen

Seite "Einführung"

Auf dieser Seite werden die Schritte zum Löschen einer Datenebenenanwendung beschrieben.

Diese Seite nicht mehr anzeigen. – Aktivieren Sie dieses Kontrollkästchen, damit die Seite in Zukunft nicht mehr angezeigt wird.

Weiter > – Fährt mit der Seite "Methode auswählen" fort.

Abbrechen – Beendet den Assistenten, ohne eine Datenebenenanwendung oder Datenbank zu löschen.

Verwenden des Assistenten zum Löschen von Datenebenenanwendungen

Seite "Methode auswählen"

Auf dieser Seite können Sie die Option zum Behandeln der der zu löschenden DAC zugeordneten Datenbank angeben.

Registrierung löschen – Entfernt die Metadaten, die die Datenebenenanwendung definieren, während die zugeordnete Datenbank intakt bleibt.

Datenbank trennen – Entfernt die Metadaten, die die Datenebenenanwendung definieren, und trennt die zugeordnete Datenbank.

Auf die Datenbank kann nicht mehr von dieser Instanz des Datenbankmoduls verwiesen werden, aber die Daten- und Protokolldateien bleiben erhalten.

Datenbank löschen – Entfernt die Metadaten, die die DAC definieren, und löscht die zugeordnete Datenbank.

Die Daten und Protokolldateien für die Datenbank werden dauerhaft gelöscht.

< Zurück – Kehrt zur Seite Einführung über.

Weiter > – Fahren Sie mit der Zusammenfassungsseite fort.

Abbrechen – Beendet den Assistenten, ohne die DAC oder Datenbank zu löschen.

Verwenden des Assistenten zum Löschen von Datenebenenanwendungen

Seite "Zusammenfassung"

Verwenden Sie diese Seite, um die Aktionen zu überprüfen, die der Assistent beim Löschen der DAC-Instanz ausführt.

Überprüfen Sie Ihre Auswahl – Überprüfen Sie die DAC, Datenbank und Löschmethode, die im Feld angezeigt werden. Wenn die Informationen richtig sind, wählen Sie entweder Weiter oder Fertig stellen aus, um die DAC zu löschen. Falls die DAC und die Datenbankinformationen nicht richtig sind, klicken Sie auf Abbrechen und wählen dann die richtige DAC aus. Wenn die Löschmethode nicht richtig ist, wählen Sie Zurück aus, um zur Seite Methode auswählen zurückzukehren, und wählen eine andere Methode aus.

< Zurück – Kehrt zur Seite Methode auswählen zurück, um eine andere Löschmethode auszuwählen.

Als Nächstes > : Löscht die DAC-Instanz mithilfe der Methode, die Sie auf der vorherigen Seite ausgewählt haben, und fährt mit der Seite "Datenebenenanwendung löschen" fort.

Abbrechen – Beendet den Assistenten, ohne die DAC-Instanz zu löschen.

Verwenden des Assistenten zum Löschen von Datenebenenanwendungen

Seite "Datenebenenanwendung löschen"

Auf dieser Seite wird angegeben, ob der Löschvorgang erfolgreich war oder fehlgeschlagen ist.

Die DAC wird gelöscht – Gibt an, ob die Aktionen zum Löschen der DAC-Instanz erfolgreich waren oder fehlgeschlagen sind. Überprüfen Sie die Informationen, um zu bestimmen, ob die einzelnen Aktionen erfolgreich waren oder fehlgeschlagen sind. Für alle Aktionen, die fehlerhaft waren, ist in der Spalte Ergebnis ein Link enthalten. Klicken Sie auf den Link, um einen Bericht des für diese Aktion aufgetretenen Fehlers anzuzeigen.

Bericht speichern – Klicken Sie auf diese Schaltfläche, um den Löschbericht in einer HTML-Datei zu speichern. In der Datei ist der Status der einzelnen Aktionen aufgeführt, einschließlich aller durch die Aktionen generierten Fehler. Der Standardordner entspricht dem Ordner "SQL Server Management Studio\DAC Packages" im Ordner "Dokumente" unter Ihrem Windows-Konto.

Fertig stellen – Beendet den Assistenten.

Verwenden des Assistenten zum Löschen von Datenebenenanwendungen

PowerShell

  1. Erstellen Sie ein SMO-Serverobjekt, und legen Sie es auf die Instanz fest, die die zu löschende DAC enthält.

  2. Öffnen Sie ein ServerConnection -Objekt, und stellen Sie eine Verbindung mit derselben Instanz her.

  3. Verwenden Sie add_DacActionStarted und add_DacActionFinished, um die DAC-Aktualisierungsereignisse zu abonnieren.

  4. Geben Sie die zu löschende DAC an.

  5. Verwenden Sie je nach geeigneter Löschoption eines dieser drei Beispiele:

    • Verwenden Sie die Unmanage-Methode, um die DAC-Registrierung zu löschen, während die Datenbank intakt bleibt.
    • Verwenden Sie die Uninstall-Methode, und geben Sie DetachDatabase an, um die DAC-Registrierung zu löschen und die Datenbank zu trennen.
    • Verwenden Sie die Uninstall-Methode, und geben Sie DropDatabase an, um die DAC-Registrierung zu löschen und die Datenbank zu trennen.

Löschen der DAC und Belassen der Datenbank

Im folgenden Beispiel wird die DAC <myApplication> mithilfe der Unmanage-Methode gelöscht. Dabei wird die DAC gelöscht, die Datenbank bleibt jedoch intakt.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$server = Get-Item .  
  
## Open a Common.ServerConnection to the same instance.  
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($server.ConnectionContext.SqlConnectionObject)  
$serverConnection.Connect()  
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)  
  
## Subscribe to the DAC delete events.  
$dacStore.add_DacActionStarted({Write-Host `n`nStarting at $(Get-Date) :: $_.Description})  
$dacStore.add_DacActionFinished({Write-Host Completed at $(Get-Date) :: $_.Description})  
  
## Specify the DAC to delete.  
$dacName  = "<myApplication>"  
  
## Only delete the DAC definition from msdb, the associated database remains active.  
$dacStore.Unmanage($dacName)  

Löschen der DAC und Trennen der Datenbank

Im folgenden Beispiel wird die DAC <myApplication> mithilfe der Uninstall-Methode gelöscht und die Datenbank getrennt.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$server = Get-Item .  
  
## Open a Common.ServerConnection to the same instance.  
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($server.ConnectionContext.SqlConnectionObject)  
$serverConnection.Connect()  
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)  
  
## Subscribe to the DAC delete events.  
$dacStore.add_DacActionStarted({Write-Host `n`nStarting at $(Get-Date) :: $_.Description})  
$dacStore.add_DacActionFinished({Write-Host Completed at $(Get-Date) :: $_.Description})  
  
## Specify the DAC to delete.  
$dacName  = "<myApplication>"  
  
## Delete the DAC definition from msdb and detach the associated database.  
$dacStore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DetachDatabase)  

Löschen der DAC und der Datenbank

Im folgenden Beispiel wird die DAC <myApplication> mithilfe der Uninstall-Methode gelöscht. Die Datenbank wird ebenfalls gelöscht.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$server = Get-Item .  
  
## Open a Common.ServerConnection to the same instance.  
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($server.ConnectionContext.SqlConnectionObject)  
$serverConnection.Connect()  
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)  
  
## Subscribe to the DAC delete events.  
$dacStore.add_DacActionStarted({Write-Host `n`nStarting at $(Get-Date) :: $_.Description})  
$dacStore.add_DacActionFinished({Write-Host Completed at $(Get-Date) :: $_.Description})  
  
## Specify the DAC to delete.  
$dacName  = "<myApplication>"  
  
## Delete the DAC definition from msdb and drop the associated database.  
$dacStore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DropDatabase)  

Weitere Informationen

Datenebenenanwendungen
Datenebenenanwendungen
Bereitstellen einer Datenebenenanwendung
Registrieren einer Datenbank als eine DAC
Sichern und Wiederherstellen von SQL Server-Datenbanken
Datenbanktrennzeichen und Anfügen (SQL Server)