Vorgehensweise: Aktualisieren einer Datenebenenanwendung

Ändern Sie mithilfe des Assistenten zum Aktualisieren von Datenebenenanwendungen oder eines Windows PowerShell-Skripts das Schema und die Eigenschaften einer derzeit bereitgestellten Datenebenenanwendung (DAC) so, dass sie mit dem Schema und den Eigenschaften übereinstimmen, die in einer neuen Version der DAC definiert sind.

Direkte und parallele Aktualisierungen

Es gibt zwei Arten von DAC-Aktualisierungen:

  • Bei einer parallelen Aktualisierung wird eine Kopie der vorhandenen Datenbank beibehalten, während eine neue Datenbank erstellt wird, die das in der neuen DAC-Version definierte Schema aufweist. Anschließend werden die Daten von der alten Datenbank in die neue kopiert.

  • Bei einer direkten Aktualisierung wird das Schema der vorhandenen Datenbank so geändert, dass es mit dem in der neuen DAC-Version definierten Schema übereinstimmt.

SQL Server 2008 R2 und Microsoft Visual Studio 2010 enthielten DAC Framework 1.0, das nur parallele Aktualisierungen unterstützt. Parallele Aktualisierungen bieten keine Unterstützung für SQL Azure. SQL Server 2008 R2 Service Pack 1 (SP1) und Visual Studio 2010 SP1 enthalten beide ein neues DAC Framework 1.1, mit dem direkte Aktualisierungen in SQL Azure und in Instanzen von Database Engine (Datenbankmodul) eingeführt werden. Weitere Informationen zu DAC Framework 1.1 finden Sie unter DAC-Unterstützung für SQL Server-Objekte und -Versionen.

In der ursprünglichen Version des DAC-Aktualisierungs-Assistenten wurde DAC Framework 1.0 verwendet, um parallele Aktualisierungen auszuführen. Die in SQL Server 2008 R2 SP1 enthaltene Version des Assistenten führt direkte Aktualisierungen aus.

Benutzer von SQL Server 2008 R2 können auf den neuen Assistenten und auf DAC Framework 1.1 aktualisieren, indem sie SQL Server 2008 R2 SP1 installieren.

Vorbereiten der Aktualisierung

Vor dem Beginn der Aktualisierung sollte eine vollständige Datenbanksicherung durchgeführt werden. Wenn bei einer Aktualisierung ein Fehler auftritt und kein Rollback für alle Aktualisierungen ausgeführt werden kann, müssen Sie möglicherweise die Sicherung wiederherstellen.

Es gibt mehrere Aktionen, die Sie durchführen sollten, um das DAC-Paket und die Aktualisierungsaktionen zu validieren. Weitere Informationen zum Durchführen dieser Tests finden Sie unter Vorgehensweise: Überprüfen eines DAC-Pakets.

  • Es wird davon abgeraten, für das Upgrade ein DAC-Paket aus unbekannten oder nicht vertrauenswürdigen Quellen zu verwenden. Solche DACs können schädlichen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQL-Code ausführt oder Fehler verursacht, indem er das Schema ändert. Bevor Sie eine DAC aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, entpacken Sie die DAC, und untersuchen Sie den Code, z. B. gespeicherte Prozeduren oder sonstigen benutzerdefinierten Code.

  • Wenn nach der Bereitstellung der ursprünglichen DAC Änderungen an der aktuellen Datenbank vorgenommen wurden, verhindern einige Änderungen möglicherweise den erfolgreichen Abschluss der Aktualisierung, oder sie werden durch die Aktualisierung entfernt. Sie sollten zuerst einen Bericht mit solchen an der Datenbank vorgenommenen Änderungen generieren.

  • Es wird empfohlen, eine Liste von Schemaänderungen zu generieren, die bei der Aktualisierung durchgeführt werden, und diese im Fall von Problemen zu überprüfen.

Auswahl der DAC-Aktualisierungsoptionen

Für eine parallele Aktualisierung stehen vier Aktualisierungsoptionen zur Verfügung:

Datenverlust ignorieren – Wenn auf True festgelegt, wird die Aktualisierung auch dann fortgesetzt, wenn einige der Vorgänge zu Datenverlust führen. Wenn auf False festgelegt, wird bei solchen Vorgängen die Aktualisierung beendet. Wenn beispielsweise eine Tabelle der aktuellen Datenbank im Schema der neuen DAC nicht vorhanden ist, wird die Datenbank gelöscht, wenn True festgelegt ist. Die Standardeinstellung ist True.

Bei Änderungen blockieren – Wenn auf True festgelegt, wird die Aktualisierung beendet, wenn sich das Datenbankschema von dem in der vorherigen DAC definierten Schema unterscheidet. Wenn auf False festgelegt, wird die Aktualisierung auch dann fortgesetzt, wenn Änderungen erkannt werden. Die Standardeinstellung ist False.

Rollback bei Fehler – Wenn auf True festgelegt, werden die Aktualisierungen in Transaktionen eingeschlossen, und wenn Fehler auftreten, wird versucht, ein Rollback auszuführen. Wenn auf False festgelegt, wird für alle Änderungen bei ihrer Erstellung ein Commit ausgeführt, und wenn Fehler auftreten, muss möglicherweise eine vorherige Sicherung der Datenbank wiederhergestellt werden. Die Standardeinstellung ist False.

Richtlinienüberprüfung überspringen – Wenn auf True festgelegt, wird die DAC-Richtlinie zur Serverauswahl nicht überprüft. Wenn auf False festgelegt, wird die Richtlinie ausgewertet, und im Fall eines Fehlers wird die Aktualisierung beendet. Die Standardeinstellung ist False.

Anforderungen

Ein DAC-Upgrade kann nur von Mitgliedern der festen Serverrollen sysadmin oder serveradmin durchgeführt werden bzw. unter Verwendung von Anmeldenamen aus der festen Serverrolle dbcreator, die über ALTER ANY-LOGIN-Berechtigungen verfügen. Die Anmeldung muss als Besitzer der vorhandenen Datenbank erfolgen. Außerdem kann das integrierte SQL Server-Systemadministratorkonto mit der Bezeichnung sa zum Starten des Assistenten verwendet werden.

Der Anwendungsname im DAC-Paket muss mit dem Anwendungsnamen der gerade bereitgestellten DAC übereinstimmen. Wenn die aktuelle DAC z. B. den Anwendungsnamen GeneralLedger hat, können Sie das Upgrade nur mithilfe eines DAC-Pakets ausführen, das ebenfalls den Anwendungsnamen GeneralLedger aufweist.

Anmeldekennwörter

Zur Erhöhung der Sicherheit werden die Anmeldenamen für die SQL Server-Authentifizierung 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.

Überlegungen zum Speicherplatz

Bei einer direkten Aktualisierung ist der wichtigste Aspekt, dass genügend Speicherplatz für das Transaktionsprotokoll zur Verfügung stehen muss, um alle Änderungen zu protokollieren.

Bei einer parallelen Aktualisierung wird die aktuelle Datenbank für die bereitgestellte DAC beibehalten und zusätzlich eine neue Datenbank erstellt und vorhandene Daten in die neue Datenbank kopiert. Es sollte ausreichend freier Speicherplatz für eine neue Datenbank vorhanden sein, die der Größe der vorhandenen Datenbank entspricht. Stellen Sie vor dem Ausführen einer parallelen Aktualisierung sicher, dass die Datenmenge in der aktuellen Datenbank nicht zu groß für die neue Datenbank ist. Die vom Upgrade erstellte Datenbank weist die Standardgrößeneinstellungen aus der CREATE DATABASE-Anweisung auf. Laut Standardeinstellung weist eine Datendatei eine Ausgangsgröße von 3 MB und eine unbegrenzte Anzahl von inkrementellen Erweiterungen zu je 1 MB auf, und eine Protokolldatei weist eine Ausgangsgröße von 1 MB und eine maximale Größenbeschränkung von 2 GB auf.

Optionen für parallele Datenbanken

Bei einer parallelen Aktualisierung verfügt die während der Bereitstellungsphase erstellte Datenbank ü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 DAC-Projekt in Visual Studio erstelltes Paket verwendet die im DAC-Projekt 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.

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. Weitere Informationen finden Sie unter Ändern einer Datenbank.

Direkte DAC-Aktualisierung mit PowerShell

In diesem Beispiel wird die IncrementalUpgrade()-Methode von DAC Framework 1.1 verwendet, um eine direkte DAC-Aktualisierung durchzuführen. Mit dieser Methode werden DACs in SQL Server oder SQL Azure aktualisiert. Die empfohlene Methode für eine Installation des neuen Frameworks ist die Installation von SQL Server 2008 R2 SP1.

Erstellen Sie eine PowerShell-Skriptdatei (z. B. IncrementalUpgradeDAC.ps1), die den folgenden Code enthält.

  1. 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 .
    
  2. Fügen Sie Code hinzu, um ein ServerConnection-Objekt zu öffnen und eine Verbindung mit derselben Instanz herzustellen.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. Fügen Sie Code hinzu, um die DAC-Paketdatei zu laden. In diesem Beispiel wird die Datei MyApplicationVNext.dacpac geladen.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. Fügen Sie Code hinzu, um die DAC-Bereitstellungsereignisse zu abonnieren.

    ## 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})
    
  5. Fügen Sie Code hinzu, um die zu aktualisierende DAC sowie die Aktualisierungsoptionen anzugeben, aktualisieren Sie die DAC, und schließen Sie die DAC-Paketdatei:

    ## Upgrade the DAC and create the database.
    $dacName  = "MyApplication"
    ## Set the upgrade options.
    $upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions
    $upgradeProperties.blockonchanges = $true
    $upgradeProperties.ignoredataloss = $false 
    $upgradeproperties.rollbackonfailure = $true
    $upgradeProperties.skippolicyvalidation = $false
    ## Do not set IgnoreDrift, replaced by BlockOnChanges.
    
    ## Upgrade the DAC and create the database.
    $dacstore.IncrementalUpgrade($dacName, $dacType, $upgradeProperties)
    
    $fileStream.Close()
    

Führen Sie IncrementalUgradeDAC.ps1 entweder über eine PowerShell-Sitzung aus, in die Sie die SQL Server PowerShell-Snap-Ins geladen haben, oder verwenden Sie das Eingabeaufforderungs-Hilfsprogramm sqlps.

Direkte DAC-Aktualisierung mit einem Assistenten

In Management Studio können Sie den Assistenten zum Aktualisieren von Datenebenenanwendungen starten, indem Sie den Serverknoten im Objekt-Explorer öffnen, den Knoten Verwaltung und dann den Knoten Datenebenenanwendungen auswählen. Klicken Sie mit der rechten Maustaste auf den Knoten einer Datenebenenanwendung im Objekt-Explorer, und wählen Sie dann Datenebenenanwendung aktualisieren aus.

VorsichtshinweisVorsicht

Der DAC-Aktualisierungs-Assistent in der ursprünglichen Version von SQL Server 2008 R2 führt eine parallele Aktualisierung durch, die in SQL Azure nicht unterstützt wird. In diesem Abschnitt wird die neue, in SQL Server 2008 R2 SP1 enthaltene Version des Assistenten beschrieben, die direkte Aktualisierungen ausführt.

Klicken Sie auf einen Link in der unten angezeigten Liste, um zu den Details für eine Assistentenseite zu navigieren:

  • Seite "Einführung"

  • Seite "Paket auswählen"

  • Seite "Richtlinie überprüfen"

  • Seite "Änderung erkennen"

  • Upgradeplan überprüfen

  • Seite "Zusammenfassung"

  • Seite "DAC aktualisieren"

Seite "Einführung"

Auf dieser Seite werden die Schritte zum Aktualisieren 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 Paket auswählen über.

Abbrechen – Beendet den Assistenten, ohne die DAC zu aktualisieren.

Seite "Paket auswählen"

Verwenden Sie diese Seite, um das DAC-Paket anzugeben, das die neue Version der Datenebenenanwendung enthält. Die Seite durchläuft zwei Statusübergänge.

Auswählen des DAC-Pakets

Verwenden Sie die Seite in ihrem Ausgangszustand, um das bereitzustellende DAC-Paket auszuwählen. Das DAC-Paket muss eine gültige DAC-Paketdatei sein und die Erweiterung .dacpac aufweisen. Der DAC-Anwendungsname im DAC-Paket muss dem Anwendungsnamen der aktuellen DAC entsprechen.

DAC-Paket – Geben Sie den Pfad und Dateinamen des DAC-Pakets an, das die neue Version der 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-Anwendungsnamen, 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 geschrieben wurde.

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

Weiter > – Zeigt eine Statusanzeige an, da der Assistent bestätigt, dass es sich bei der ausgewählten Datei um ein gültiges DAC-Paket handelt.

Abbrechen – Beendet den Assistenten, ohne die DAC zu aktualisieren.

Ü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 Seite Richtlinie überprüfen über. Wenn die Datei kein gültiges DAC-Paket ist, verbleibt der Assistent auf der Seite 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.

Der DAC-Inhalt wird überprüft – Die Statusanzeige, die den aktuellen Status des Überprüfungsprozesses angibt.

< Zurück – Kehrt zum Ausgangszustand der Seite Paket auswählen zurück.

Weiter> – Geht zur abschließenden Version der Seite Paket auswählen über.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Richtlinie überprüfen"

Verwenden Sie diese Seite, um die Auswertungsergebnisse der DAC-Richtlinie zur Serverauswahl zu überprüfen, wenn die DAC über eine Richtlinie verfügt. Die DAC-Richtlinie zur Serverauswahl ist optional und wird einer in Microsoft Visual Studio erstellten DAC zugewiesen. Die Richtlinie verwendet Facets für die Richtlinie zur Serverauswahl, um Bedingungen anzugeben, die eine Database Engine (Datenbankmodul)-Instanz zum Hosten der DAC erfüllen sollte.

Auswertungsergebnisse der Richtlinienbedingungen – Ein schreibgeschützter Bericht, der anzeigt, ob die Auswertungen der Bedingungen in der DAC-Richtlinie zur Serverauswahl erfolgreich waren. Die Auswertungsergebnisse für die einzelnen Bedingungen werden in einer separaten Zeile angezeigt.

Richtlinienverletzungen ignorieren – Verwenden Sie dieses Kontrollkästchen, um mit dem Upgrade fortzufahren, wenn mindestens eine Richtlinienbedingung nicht erfüllt wurde. Aktivieren Sie diese Option nur, wenn Sie sicher sind, dass keine der fehlgeschlagenen Bedingungen die erfolgreiche Ausführung der DAC verhindert.

< Zurück – Kehrt zur Seite Paket auswählen zurück.

Weiter > – Geht zur Seite Änderung erkennen über.

Abbrechen – Beendet den Assistenten, ohne die DAC zu aktualisieren.

Seite "Änderung erkennen"

Auf dieser Seite werden die Ergebnisse angezeigt, die die Assistenten bei der Suche nach Datenbankänderungen gefunden haben und die auf eine Abweichung zwischen dem Datenbankschema und der in der msdb-Datenbank in den DAC-Metadaten gespeicherten Schemadefinition hindeuten. Beispielsweise wurden die Anweisungen CREATE, ALTER oder DROP verwendet, um Objekte nach der ursprünglichen Bereitstellung der DAC zur Datenbank hinzuzufügen, Objekte zu ändern oder zu entfernen. Auf der Seite werden zuerst eine Statusanzeige und dann die Analyseergebnisse angezeigt.

Änderung wird ermittelt. Dieser Vorgang kann einige Minuten dauern – Zeigt eine Statusanzeige an, während der Assistent Unterschiede zwischen dem aktuellen Schema der Datenbank und den Objekten in der DAC-Definition sucht.

Erkennungsergebnisse ändern – Gibt an, dass die Analyse abgeschlossen wurde. Die Ergebnisse werden darunter angezeigt.

Die DatabaseName-Datenbank wurde nicht geändert – Der Assistent hat keine Unterschiede zwischen den in der Datenbank definierten Objekten und ihren Äquivalenten in der DAC-Definition festgestellt.

Die DatabaseName-Datenbank wurde geändert – Der Assistent hat Änderungen zwischen den Objekten in der Datenbank und ihren Äquivalenten in der DAC-Definition festgestellt.

Vorgang fortsetzen, obwohl Änderungen verloren gehen können – Sie wurden informiert, dass einige der Objekte oder Daten in der aktuellen Datenbank nicht in der neuen Datenbank vorhanden sein werden, möchten das Upgrade aber dennoch fortsetzen. Sie sollten diese Schaltfläche nur aktivieren, wenn Sie den Änderungsbericht überprüft und verstanden haben, welche Schritte erforderlich sind, um Objekte oder Daten, die in der neuen Datenbank erforderlich sind, manuell zu übertragen. Wenn Sie nicht sicher sind, klicken Sie auf die Schaltfläche Bericht speichern, um den Änderungsbericht zu speichern, und klicken Sie dann auf Abbrechen. Analysieren Sie den Bericht, planen Sie die Übertragung erforderlicher Objekte und Daten nach dem Upgrade, und starten Sie den Assistenten erneut. Weitere Informationen finden Sie unter Aktualisieren von Datenebenenanwendungen.

Bericht speichern – Klicken Sie auf die Schaltfläche, um einen Bericht der Änderungen zu speichern, die der Assistent zwischen den Objekten in der Datenbank und ihren Äquivalenten in der DAC-Definition festgestellt hat. Sie können dann den Bericht überprüfen, um zu bestimmen, ob Sie nach dem Upgrade Maßnahmen ergreifen müssen, um einige oder alle im Bericht aufgeführten Objekte in die neue Datenbank zu integrieren.

< Zurück – Kehrt zur Seite DAC-Paket auswählen zurück.

Weiter > – Geht zur Seite Upgradeplan überprüfen über.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Upgradeplan überprüfen"

Verwenden Sie diese Seite, um die Aktionen zu überprüfen, die beim Aktualisieren ausgeführt werden. Fahren Sie nur dann fort, wenn Sie sicher sind, dass durch das Upgrade keine Probleme verursacht werden.

Die folgenden Aktionen werden zum Aktualisieren der DAC verwendet. Überprüfen Sie die angezeigten Informationen darauf, ob die ergriffenen Maßnahmen richtig sind. In der Spalte Aktion werden die Aktionen angezeigt, die für das Upgrade ausgeführt werden, z. B. Transact-SQL-Anweisungen. Die Spalte Datenverlust enthält eine Warnung, wenn durch die zugeordnete Aktion Daten gelöscht werden könnten.

Aktualisieren – Aktualisiert die Liste der Aktionen.

Aktionsbericht speichern – Speichert den Inhalt des Aktionsfensters in einer HTML-Datei.

Vorgang fortsetzen, obwohl Änderungen verloren gehen können – Sie wurden informiert, dass einige der Objekte oder Daten in der aktuellen Datenbank nicht in der neuen Datenbank vorhanden sein werden, möchten das Upgrade aber dennoch fortsetzen. Sie sollten diese Schaltfläche nur aktivieren, wenn Sie den Änderungsbericht überprüft und verstanden haben, welche Schritte erforderlich sind, um Objekte oder Daten, die in der neuen Datenbank erforderlich sind, manuell zu übertragen. Wenn Sie nicht sicher sind, klicken Sie auf die Schaltfläche Aktionsbericht speichern, um den Änderungsbericht zu speichern. Klicken Sie auf die Schaltfläche Skripts speichern, um das Transact-SQL-Skript zu speichern, und klicken Sie dann auf Abbrechen. Analysieren Sie den Bericht und das Skript, planen Sie die Übertragung erforderlicher Objekte und Daten nach dem Upgrade, und starten Sie den Assistenten erneut. Weitere Informationen finden Sie unter Aktualisieren von Datenebenenanwendungen.

Skripts speichern – Speichert die für das Upgrade verwendeten Transact-SQL-Anweisungen in einer Textdatei.

Standardwerte wiederherstellen – Setzt die Option auf die Standardeinstellung false zurück.

< Zurück – Sie kehren zur Seite Änderung erkennen zurück.

Weiter > – Geht zur Seite Zusammenfassung über.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Zusammenfassung"

Verwenden Sie diese Seite, um die Aktionen zu überprüfen, die der Assistent beim Aktualisieren der DAC ausführt.

Die folgenden Einstellungen werden zum Aktualisieren der DAC verwendet. Überprüfen Sie die angezeigten Informationen darauf, ob die ergriffenen Maßnahmen richtig sind. Das Fenster zeigt die zur Aktualisierung ausgewählte DAC und das DAC-Paket an, das die neue Version der DAC enthält. Im Fenster wird außerdem angezeigt, ob die aktuelle Version der Datenbank der aktuellen DAC-Definition entspricht oder ob die Datenbank geändert wurde.

< Zurück – Sie kehren zur Seite Änderung erkennen zurück.

Weiter > – Stellt die DAC bereit und zeigt die Ergebnisse auf der Seite DAC aktualisieren an.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "DAC aktualisieren"

Auf dieser Seite wird angegeben, ob der Upgradevorgang erfolgreich war oder fehlgeschlagen ist.

DAC wird aktualisiert – Gibt an, ob die Aktionen zur Aktualisierung der DAC 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 Aktualisierungsbericht 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 SQL Server Management Studio\DAC Packages im Ordner Dokumente unter Ihrem Windows-Konto.

Fertig stellen – Beendet den Assistenten.

Parallele DAC-Aktualisierung mit PowerShell

In diesem Beispiel wird die Upgrade()-Methode von DAC Framework 1.0 verwendet, um eine parallele DAC-Aktualisierung durchzuführen. Die Upgrade()-Methode wird in der nächsten Version von SQL Server entfernt und bietet keine Unterstützung für SQL Azure. Die bevorzugte Methode für eine direkte Aktualisierung ist die Verwendung der IncrementalUpgrade()-Methode von DAC Framework 1.1 (weiter oben behandelt).

Es gibt zwei Aktualisierungsoptionen für parallele Aktualisierungen:

  • Abweichung ignorieren – Wenn auf True festgelegt, wird die Aktualisierung auch dann fortgesetzt, wenn Änderungen erkannt werden. Wenn auf False festgelegt, wird die Aktualisierung beendet, wenn sich das Datenbankschema von dem in der vorherigen DAC definierten Schema unterscheidet.

  • TS-Richtlinie aufrufen – Wenn auf True festgelegt, wird die DAC-Richtlinie zur Serverauswahl ausgewertet, und im Fall eines Fehlers wird die Aktualisierung beendet. False gibt an, dass die Richtlinie nicht ausgewertet wird.

Um eine direkte Aktualisierung auszuführen, erstellen Sie eine PowerShell-Skriptdatei (z. B. UpgradeDAC.ps1), die den folgenden Code enthält.

  1. 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 .
    
  2. Fügen Sie Code hinzu, um ein ServerConnection-Objekt zu öffnen und eine Verbindung mit derselben Instanz herzustellen.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. Fügen Sie Code hinzu, um die DAC-Paketdatei zu laden. In diesem Beispiel wird die Datei MyApplicationVNext.dacpac geladen.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplicationVNext.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. Fügen Sie Code hinzu, um die DAC-Bereitstellungsereignisse zu abonnieren.

    ## 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})
    
  5. Fügen Sie Code hinzu, um ein DAC-Upgrade durchzuführen und die DAC-Paketdatei zu schließen:

    ## Upgrade the DAC and create the database.
    $dacName  = "MyApplication"
    $evaluateTSPolicy = $true
    $ignoreDriftOption = $true
    $upgradeProperties = New-Object Microsoft.SqlServer.Management.Dac.DacUpgradeOptions($evaluateTSPolicy, $ignoreDriftOption)
    $dacstore.Upgrade($dacName, $dacType, $upgradeProperties)
    $fileStream.Close()
    

Führen Sie UgradeDAC.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.

Änderungsverlauf

Aktualisierter Inhalt

Abschnitt zur Verwendung von PowerShell wurde hinzugefügt.

Es wurden Informationen zur direkten Aktualisierung sowie zum DAC Framework 1.1 Feature Pack hinzugefügt.

SQL Server 2008 R2 SP1 beinhaltet den neuen Aktualisierungs-Assistant, der direkte Aktualisierungen durchführt und das DAC Framework 1.1.