Teilen über


Datenebenenanwendungen (DAC)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Eine Datenschichtanwendung (DAC) ist eine logische Datenbankentität, die alle SQL Server-Objekte definiert, beispielsweise Tabellen, Sichten und Instanzobjekte, einschließlich Anmeldenamen, die mit der Datenbank eines Benutzers verknüpft sind. Ein DAC ist eine eigenständige Einheit des gesamten Datenbankmodells und ist in einem Artefakt portierbar, das als DAC-Paket oder .dacpac bezeichnet wird. Die Toolunterstützung für Datenschichtanwendungen ermöglicht Entwicklern und Datenbankadministratoren die Bereitstellung von dacpacs in neuen oder vorhandenen Datenbanken. Bereitstellungen in einer vorhandenen Datenbank aktualisieren das Datenbankmodell aus dem vorhandenen Zustand so, dass es mit dem Inhalt der dacpac übereinstimmt. Entwickler erstellen DACs aus SQL-Datenbankprojekten, einem deklarativen Entwicklungskonzept zum Erstellen von SQL-Objekten, das die Quellcodeverwaltung im Datenbankschema ermöglicht.

Ein .bacpac ist ein verwandtes Artefakt, das standardmäßig das Datenbankschema und die in der Datenbank gespeicherten Daten kapselt. Der Hauptzweck einer BACPAC-Datei besteht darin, eine Datenbank von einem Server auf einen anderen zu verschieben – oder eine Datenbank von einem lokalen Server zur Cloud zu migrieren – und eine vorhandene Datenbank in einem offenen Format zu archivieren.

Vorteile von Datenschichtanwendungen

Der Lebenszyklus einer Datenbankanwendungen kann Entwickler und Datenbankadministratoren dazu zwingen, Skripts und Einzelbenutzer-Integrationsbenachrichtigungen für Anwendungsaktualisierungenaktivitäten auszutauschen. Dieser Prozess ist zwar unter bestimmten Umständen akzeptabel, kann aber schwierig in DevOps-Pipelines und allgemeine Entwicklungsprozesse zu integrieren sein.

Datenschichtanwendungen ermöglichen die deklarative Datenbankentwicklung, vereinfachen den Entwicklungsprozess und bieten eine konsistentere und vorhersehbarere Entwicklungserfahrung. Ein Entwickler kann eine Datenbank mit SQL-Datenbankprojekten in seiner Wahl einer integrierten Entwicklungsumgebung (IDE) erstellen. Ein SQL-Datenbankprojekt kann lokal oder in einer DevOps-Pipeline zu einem DAC-Paket kompiliert werden. Das DAC-Paket wird wiederum über einen automatisierten Prozess oder manuell mit einem CLI- oder GUI-Tool in einer Test-, Staging- oder Produktionsdatenbank bereitgestellt. Mit einer .dacpac können Sie eine Datenbank mit neuen oder geänderten Objekten aktualisieren, zu einer früheren Version der Datenbank zurückkehren oder eine völlig neue Datenbank bereitstellen. Umgekehrt kann eine .dacpac aus einer vorhandenen Datenbank generiert und verwendet werden, um ein SQL-Datenbankprojekt basierend auf dem aktuellen Datenbankschema einzurichten.

Der Vorteil einer DAC-gesteuerten Bereitstellung über einen migrationsgesteuerten Prozess besteht darin, dass der Prozess die Identifizierung und Validierung von Verhaltensweisen aus verschiedenen Quell- und Zieldatenbanken ermöglicht. Tools, die während der Datenbankbereitstellung/Upgrades verwendet werden, können riskante Aktionen kennzeichnen, z. B. Änderungen der Spaltengröße, die zu Datenverlusten und der Möglichkeit führen können, den Upgradeplan direkt zu skripten. Dieser Plan kann manuell ausgewertet werden, bevor mit dem Update fortgefahren wird.

Vorgänge

Eine DAC vereinfacht die Entwicklung, Bereitstellung und Verwaltung der Datenebenenelemente, die eine Anwendung unterstützen.

DACPAC

Ein DAC unterstützt die folgenden Vorgänge:

Diese Funktionen finden Sie in SqlPackage, SQL Server Management Studio, Azure Data Studio und SQL Server Data Tools.

SQL-Datenbankprojekte

Ein SQL-Projekt unterstützt die folgenden Operationen:

  • BUILD - Der Benutzer kann ein SQL-Datenbankprojekt in eine .dacpac erstellen.

  • PUBLISH – Der Benutzer kann ein SQL-Datenbankprojekt auf einem Hostserver veröffentlichen.

  • EXTRACT - Der Benutzer kann eine Datenbank in ein SQL-Datenbankprojekt extrahieren.

Diese Funktionen finden Sie in Azure Data Studio, Visual Studio Code und SQL Server Data Tools.

BACPAC

Eine .bacpac-Datei dient andererseits der Erfassung von Schemas und Daten. Dabei werden zwei Hauptoperationen unterstützt:

Diese Funktionen werden von den Tools SqlPackage, SQL Server Management Studio, Azure Data Studio und dem Azure-Portal unterstützt.

DAC-Tools

Artefakte einer Datenschichtanwendung und SQL-Projekte können in mehreren Tools verwendet werden. Diese Tools erfüllen die Anforderungen verschiedener Benutzerpersonas.

DACPAC und BACPAC

Die folgenden Tools unterstützen das DAC-Paket- und BAC-Paketformat:

In diesen Tools kann eine Datenbank in eine .dacpac extrahiert oder in eine .bacpac exportiert werden. Umgekehrt kann eine .bacpac in eine neue Datenbank importiert werden, oder ein .dacpac kann in eine neue oder vorhandene Datenbank veröffentlicht werden.

DACPAC- und SQL-Projekte

Die folgenden Tools unterstützen das DAC-Paketformat zusätzlich zur Bearbeitung von SQL-Datenbankprojekten:

In diesen Tools können Entwickler eine Datenbank in einer nicht verbundenen, clientseitigen Entwicklungsumgebung entwerfen. Die Tools können verwendet werden, um ein DAC-Paket zu erstellen, ein DAC-Paket in einer Datenbank bereitzustellen und ein Datenbankpaket in ein SQL-Projekt zu importieren.

Konzepte von DAC

Versionsunterstützung

Im Allgemeinen können DAC-Tools .dacpac-Dateien lesen, die von DAC-Tools früherer SQL Server-Versionen generiert wurden. Außerdem können von den DAC-Tools DAC-Pakete für frühere Versionen von SQL Server bereitgestellt werden. Demgegenüber können DAC-Tools früherer Versionen keine .dacpac-Dateien lesen, die mit höheren DAC-Tool-Versionen generiert wurden. Mindestens unterstützen DAC-Tools die in-Support-Versionen von SQL Server zum Zeitpunkt ihrer Veröffentlichung.

Dateiformat

Eine .dacpac ist ein komprimierter Ordner mit einer .dacpac-Erweiterung, und ähnlich ist eine .bacpac ein komprimierter Ordner mit einer .bacpac-Erweiterung. Ein erweiterter Benutzer kann die Datei entpacken, um die mehreren XML-Abschnitte, die Details des Ursprungs, die Objekte in der Datenbank und andere Merkmale anzuzeigen. Um eine .dacpac- oder .bacpac-Datei zu entpacken, ersetzen Sie die Dateierweiterung durch .zip, und verwenden Sie ein Dateikomprimierungsprogramm, um die Datei zu entzippen.

Registrierung von Datenschichtanwendungen

In SQL Server Management Studio können andere Aktionen für eine Datenbank ausgeführt werden, um sie als Datenschichtanwendung zu registrieren.

  • REGISTER: Der Benutzer kann eine Datenbank als Datenebenenanwendung registrieren.

  • UNREGISTER: Die Registrierung einer zuvor als DAC registrierten Datenbank kann aufgehoben werden.

  • UPGRADE - Eine Datenbank kann mit einer .dacpac-Datei aktualisiert werden.

Weitere Informationen zu diesen Aktionen finden Sie in den nachstehenden Aufgaben.

Aufgabe Artikellink
Beschreibt, wie eine neue DAC-Paketdatei zum Aktualisieren einer Instanz auf eine neue Version der DAC verwendet wird. Upgrade einer Datenebenenanwendung
Beschreibt, wie eine DAC-Instanz entfernt wird. Sie können auswählen, ob Sie die zugeordnete Datenbank auch trennen oder löschen möchten, oder ob die Datenbank intakt bleiben soll. Löschen einer Datenebenenanwendung
Beschreibt, wie eine vorhandene Datenbank auf eine DAC-Instanz heraufgestuft wird. Eine DAC-Definition wird in der Systemdatenbank erstellt und gespeichert. Registrieren einer Datenbank als eine DAC
Beschreibt, wie vor der Verwendung eines DAC-Pakets in einem Produktionssystem sein Inhalt und die Aktionen überprüft werden, die bei einem DAC-Upgrade ausgeführt werden. Überprüfen eines DAC-Pakets

Nächste Schritte