Löschen einer Datenebenenanwendung
Gilt für: SQL Server Azure 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.
Bevor Sie beginnen: Beschränkungen und Einschränkungen, Berechtigungen
So aktualisieren Sie eine DAC mit: Der Assistenten zum Registrieren von Datenschichtanwendungen, PowerShell
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 erneut mit sp_attachdb oder SQL Server Management Studio an, und registrieren Sie anschließend eine neue DAC-Instanz von 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. Außerdem kann das integrierte SQL Server-Systemadministratorkonto mit der Bezeichnung sa zum Starten des Assistenten verwendet werden.
Verwenden des Assistenten zum Löschen von Datenebenenanwendungen
So löschen Sie eine DAC mithilfe eines Assistenten
Erweitern Sie im Objekt-Explorerden Knoten für die Instanz, die die zu löschende DAC enthält.
Erweitern Sie den Knoten Verwaltung .
Erweitern Sie den Knoten Datenebenenanwendungen .
Klicken Sie mit der rechten Maustaste auf die zu löschende DAC, und wählen Sie anschließend Datenebenenanwendung löschen... aus.
Bearbeiten Sie die Dialogfenster des Assistenten:
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 > – Geht zur Seite Methode auswählen über.
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.
Von dieser Datenbank-Engine-Instanz kann nicht mehr auf die Datenbank verwiesen werden, während die Daten und Protokolldateien jedoch intakt bleiben.
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 >: Geht zur Seite Zusammenfassung über.
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.
Weiter > – Löscht die DAC-Instanz unter Verwendung der auf der vorherigen Seite ausgewählten Methode und geht zur Seite Datenebenenanwendung löschen über.
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
Erstellen Sie ein SMO-Serverobjekt, und legen Sie es auf die Instanz fest, die die zu löschende DAC enthält.
Öffnen Sie ein ServerConnection -Objekt, und stellen Sie eine Verbindung mit derselben Instanz her.
Verwenden Sie
add_DacActionStarted
undadd_DacActionFinished
, um die DAC-Aktualisierungsereignisse zu abonnieren.Geben Sie die zu löschende DAC an.
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 SieDetachDatabase
an, um die DAC-Registrierung zu löschen und die Datenbank zu trennen. - Verwenden Sie die
Uninstall
-Methode, und geben SieDropDatabase
an, um die DAC-Registrierung zu löschen und die Datenbank zu trennen.
- Verwenden Sie die
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
Anfügen und Trennen von Datenbanken (SQL Server)