Bereitstellen einer Datenebenenanwendung
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Mithilfe eines Assistenten oder eines PowerShell-Skripts können Sie eine Datenebenenanwendung (DAC) von einem DAC-Paket für eine vorhandene Instanz der Datenbank-Engine oder der Azure SQL-Datenbank bereitstellen.
Beim Bereitstellungsprozess wird eine DAC-Instanz registriert, indem die DAC-Definition in der msdb
-Systemdatenbank (master
in SQL-Datenbank) gespeichert und eine Datenbank erstellt wird, die anschließend mit allen in der DAC definierten Datenbankobjekten aufgefüllt wird.
Mehrfaches Bereitstellen desselben DAC-Pakets
Dasselbe DAC-Paket kann mehrmals an eine einzelne Datenbank-Engine-Instanz bereitgestellt werden, die Bereitstellungen müssen jedoch einzeln ausgeführt werden. Der für die einzelnen Bereitstellungen angegebene DAC-Instanzname muss innerhalb der Instanz von Datenbank-Engine eindeutig sein.
Datenbankoptionen und -einstellungen
Die während der Bereitstellung erstellte Datenbank verfügt standardmäßig über alle Standardeinstellungen der CREATE DATABASE-Anweisung mit folgenden Ausnahmen:
Für Datenbanksortierung und Kompatibilitätsgrad werden die im DAC-Paket definierten Werte festgelegt. Ein aus einem Datenbankprojekt in SQL Server Developer Tools erstelltes DAC-Paket verwendet die im Datenbankprojekt festgelegten Werte. Ein aus einer vorhandenen Datenbank extrahiertes Paket verwendet die Werte aus der ursprünglichen Datenbank.
Sie können einige der Datenbankeinstellungen, z. B. Datenbanknamen und Dateipfade, auf der Seite Konfiguration aktualisieren anpassen. Beim Bereitstellen auf SQL-Datenbank können Sie die Dateipfade nicht festlegen.
Einige Datenbankoptionen, z. B. TRUSTWORTHY, DB_CHAINING und HONOR_BROKER_PRIORITY, können nicht im Rahmen des Bereitstellungsprozesses angepasst werden. Physische Eigenschaften, z. B. die Anzahl der Dateigruppen oder die Anzahl und Größe der Dateien, können nicht im Rahmen des Bereitstellungsprozesses geändert werden. Nachdem die Bereitstellung abgeschlossen wurde, können Sie die ALTER DATABASE-Anweisung, SQL Server Management Studio oder PowerShell für SQL Server verwenden, um die Datenbank individuell anzupassen.
Einschränkungen
Eine DAC kann in SQL-Datenbank oder eine Instanz von Datenbank-Engine, die unter SQL Server 2005 (9.x) Service Pack 4 (SP4) oder höher ausgeführt wird, bereitgestellt werden. Wenn Sie eine DAC mit einer späteren Version erstellen, enthält die DAC möglicherweise Objekte, die von SQL Server 2005 (9.x) nicht unterstützt werden. Sie können diese DACs nicht in Instanzen von SQL Server 2005 (9.x) bereitstellen.
Sicherheit und Berechtigungen
Anmeldenamen für die Authentifizierung werden ohne Kennwort in einem DAC-Paket gespeichert. Sobald das Paket bereitgestellt oder aktualisiert wird, wird der Anmeldename als deaktivierter Anmeldename mit einem generierten Kennwort erstellt. Um die Anmeldenamen zu aktivieren, melden Sie sich unter einem Anmeldenamen an, der über die ALTER ANY LOGIN-Berechtigung verfügt, und verwenden ALTER LOGIN, um den Anmeldenamen zu aktivieren und ein neues Kennwort zuzuweisen, das dem Benutzer mitgeteilt werden kann. Dies ist für Anmeldenamen der Windows-Authentifizierung nicht erforderlich, da die zugehörigen Kennwörter nicht von SQL Server verwaltet werden.
Eine DAC kann nur von Mitgliedern der festen Serverrollen sysadmin oder serveradmin bereitgestellt werden bzw. unter Verwendung von Anmeldenamen aus der festen Serverrolle dbcreator, die über ALTER ANY LOGIN-Berechtigungen verfügen. Außerdem kann das integrierte SQL Server-Systemadministratorkonto mit der Bezeichnung sa zum Importieren einer DAC verwendet werden.
Um eine DAC mit Anmeldungen bei SQL-Datenbank bereitstellen zu können, müssen Sie Mitglied der Rollen „loginmanager“ oder „serveradmin“ sein. Um eine DAC ohne Anmeldenamen in SQL-Datenbank bereitstellen zu können, müssen Sie Mitglied der Rollen „dbmanager“ oder „serveradmin“ sein.
Bereitstellen einer DAC mithilfe des Assistenten
Erweitern Sie im Objekt-Explorerden Knoten für die Instanz, für die Sie die DAC bereitstellen möchten.
Klicken Sie mit der rechten Maustaste auf den Knoten Datenbanken, und wählen Sie Datenebenenanwendung bereitstellen... aus.
Führen Sie die Dialogfenster des Assistenten aus, und wählen Sie „Fertig stellen“.
Im Folgenden erfahren Sie mehr über einige Seiten des Assistenten:
Seite "DAC-Paket auswählen"
Geben Sie das DAC-Paket an, das die bereitzustellende Datenebenenanwendung enthält. Die Seite durchläuft drei Statusübergänge.
Auswählen des DAC-Pakets
Wählen Sie das bereitzustellende DAC-Paket aus. Das DAC-Paket muss eine gültige DAC-Paketdatei sein und die Erweiterung .dacpac aufweisen.
DAC-Paket : Geben Sie den Pfad und den Dateinamen des DAC-Pakets an, das die bereitzustellende Datenebenenanwendung enthält. Sie können die Schaltfläche Durchsuchen rechts neben dem Feld auswählen, um zum Speicherort des DAC-Pakets zu wechseln.
Anwendungsname : Ein schreibgeschütztes Feld mit dem DAC-Namen, der beim Erstellen oder Extrahieren der DAC aus einer Datenbank zugewiesen wurde.
Version : Ein schreibgeschütztes Feld mit der Version, die beim Erstellen oder Extrahieren der DAC aus einer Datenbank zugewiesen wurde.
Beschreibung: Ein schreibgeschütztes Feld mit der Beschreibung, die beim Erstellen oder Extrahieren der DAC aus einer Datenbank erstellt wurde.
Überprüfen des DAC-Pakets
Zeigt eine Statusanzeige an, da der Assistent bestätigt, dass es sich bei der ausgewählten Datei um ein gültiges DAC-Paket handelt. Wenn das DAC-Paket überprüft wird, geht der Assistent zur abschließenden Version der Seite Paket auswählen über. Dort können Sie die Ergebnisse der Überprüfung einsehen. Wenn die Datei kein gültiges DAC-Paket ist, verbleibt der Assistent in DAC-Paket auswählen. Wählen Sie entweder ein anderes gültiges DAC-Paket aus, oder brechen Sie den Assistenten ab, und generieren Sie ein neues DAC-Paket.
Seite "Richtlinie überprüfen"
Überprüfen Sie die Auswertungsergebnisse der DAC-Richtlinie zur Serverauswahl (falls verwendet). Die DAC-Richtlinie zur Serverauswahl ist optional und wird der DAC während der Erstellung in Visual Studio zugewiesen. Die Richtlinie verwendet Facets für die Richtlinie zur Serverauswahl, um Bedingungen anzugeben, die eine Datenbank-Engine-Instanz zum Hosten der DAC erfüllen sollte.
Auswertungsergebnisse der Richtlinienbedingungen: Zeigt an, ob die Bedingungen der Richtlinie zur DAC-Bereitstellung erfüllt sind. Die Auswertungsergebnisse für die einzelnen Bedingungen werden in einer separaten Zeile angezeigt.
Beim Bereitstellen von DAC auf SQL-Datenbank ergeben die folgenden Serverauswahlrichtlinien immer false: Betriebssystemversion, Sprache, Named Pipes aktiviert, Plattform und tcp aktiviert.
Richtlinienverletzungen ignorieren : Verwenden Sie dieses Kontrollkästchen, um mit der Bereitstellung fortzufahren, wenn eine oder mehrere Richtlinienbedingungen nicht erfüllt wurden. Aktivieren Sie diese Option nur, wenn Sie sicher sind, dass keine der fehlgeschlagenen Bedingungen die erfolgreiche Ausführung der DAC verhindert.
Seite "Konfiguration aktualisieren"
Geben Sie die Namen der bereitgestellten DAC-Instanz und der bei der Bereitstellung erstellten Datenbank an, und legen Sie Datenbankoptionen fest.
Datenbankname : Geben Sie den Namen der Datenbank an, die von der Bereitstellung erstellt werden soll. Standardmäßig wird der Name der Quelldatenbank verwendet, aus der die DAC extrahiert wurde. Der Name muss innerhalb der Datenbank-Engine-Instanz eindeutig sein und den Regeln für Datenbank-Engine-Bezeichner entsprechen.
Wenn Sie den Datenbanknamen ändern, passen die Namen der Datendatei und der Protokolldateien entsprechend dem neuen Wert an.
Der Datenbankname wird auch als Name der DAC-Instanz verwendet. Der Instanz-Name wird im Knoten der DAC unter dem Knoten Datenschichtanwendung im Objekt-Explorer.
Die folgenden Optionen gelten nicht für SQL-Datenbank und werden beim Bereitstellen auf SQL-Datenbank nicht angezeigt.
Standardspeicherort für Datenbankdatei verwenden - Wählen Sie diese Option aus, um die Datenbankdaten- und Protokolldateien am Standardspeicherort der Instanz der Datenbank-Engine abzulegen. Die Dateinamen werden anhand des Datenbanknamens erstellt.
Datenbankdateien angeben : Wählen Sie diese Option aus, um einen anderen Speicherort oder Namen für die Daten- und Protokolldateien anzugeben.
Pfad und Name der Datendatei : Geben Sie den vollständigen Pfad- und Dateinamen für die Datendatei an. Das Feld wird mit dem Standardpfad und -dateinamen aufgefüllt. Bearbeiten Sie die Zeichenfolge im Feld, um den Standardeintrag zu ändern, oder verwenden Sie die Schaltfläche Durchsuchen, um zum Ordner zu navigieren, in dem die Datendatei abgelegt werden soll.
Pfad und Name der Protokolldatei : Geben Sie den vollständigen Pfad- und Dateinamen für die Protokolldatei an. Das Feld wird mit dem Standardpfad und -dateinamen aufgefüllt. Bearbeiten Sie die Zeichenfolge im Feld, um den Standardeintrag zu ändern, oder verwenden Sie die Schaltfläche Durchsuchen , um zum Ordner zu navigieren, in dem die Protokolldatei abgelegt werden soll.
Seite "Zusammenfassung"
Verwenden Sie diese Seite, um die Aktionen zu überprüfen, die der Assistent beim Bereitstellen der DAC ausführt.
Die folgenden Einstellungen werden zur Bereitstellung der DAC verwendet. – Überprüfen Sie die angezeigten Informationen darauf, ob die ergriffenen Maßnahmen richtig sind. Im Fenster werden das ausgewählte DAC-Paket und der für die bereitgestellte DAC-Instanz ausgewählte Name angezeigt. Im Fenster werden auch die Einstellungen angezeigt, die beim Erstellen der mit der DAC verbundenen Datenbank verwendet werden.
Seite "Bereitstellen"
Auf dieser Seite wird angegeben, ob der Bereitstellungsvorgang erfolgreich war oder fehlgeschlagen ist.
DAC wird bereitgestellt : Gibt an, ob die Aktionen zur Bereitstellung der DAC erfolgreich oder fehlerhaft waren. Ü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 Bereitstellungsbericht 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 ist der Ordner "SQL Server Management Studio\DAC Packages" im Ordner "Dokumente" unter Ihrem Windows-Konto.
Verwenden von PowerShell
Erstellen Sie ein SMO-Serverobjekt, und legen Sie es auf die Instanz fest, auf der Sie die DAC bereitstellen möchten.
Öffnen Sie ein ServerConnection -Objekt, und stellen Sie eine Verbindung mit derselben Instanz her.
Laden Sie die DAC-Paketdatei mithilfe von System.IO.File .
Verwenden Sie add_DacActionStarted und add_DacActionFinished , um die DAC-Bereitstellungsereignisse zu abonnieren.
Legen Sie die DatabaseDeploymentPropertiesfest.
Verwenden Sie die DacStore.Install -Methode zum Bereitstellen der DAC.
Schließen Sie den Dateidatenstrom, der zum Lesen der DAC-Paketdatei verwendet wurde.
Im folgenden Beispiel wird eine DAC mit dem Namen „MyApplication“ auf einer Standardinstanz von Datenbank-Engine bereitgestellt, wobei eine DAC-Definition aus einem MyApplication.dacpac-Paket verwendet wird.
PowerShell-Beispiele
Im folgenden Beispiel wird eine DAC mit dem Namen „MyApplication“ auf einer Standardinstanz von Datenbank-Engine bereitgestellt, wobei eine DAC-Definition aus einem MyApplication.dacpac-Paket verwendet wird.
## 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)
## Load the DAC package file.
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
## Subscribe to the DAC deployment events.
$dacStore.add_DacActionStarted({Write-Host `n`nStarting at $(Get-Date) :: $_.Description})
$dacStore.add_DacActionFinished({Write-Host Completed at $(Get-Date) :: $_.Description})
## Deploy the DAC and create the database.
$dacName = "MyApplication"
$evaluateTSPolicy = $true
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverConnection,$dacName)
$dacStore.Install($dacType, $deployProperties, $evaluateTSPolicy)
$fileStream.Close()