Datenebenenanwendungen (DAC)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Eine Datenebenenanwendung (Data Tier Application, DAC) ist eine logische Datenbankentität, die alle SQL Server-Objekte definiert , z. B. Tabellen, Ansichten und Instanzobjekte, einschließlich Anmeldeinformationen, die der Datenbank eines Benutzers zugeordnet 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 Datenebenenanwendungen 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 Datenebenenanwendungen

Der Lebenszyklus einer Datenbankanwendung kann Entwickler und DBAs umfassen, die Skripts austauschen und Integrationshinweise für einmalige Verwendung für Anwendungsaktualisierungsaktivitäten freigeben. Dieser Prozess ist zwar unter bestimmten Umständen akzeptabel, kann aber schwierig sein, in DevOps-Pipelines und allgemeine Entwicklungsprozesse zu integrieren.

Datenebenenanwendungen ermöglichen die deklarative Datenbankentwicklung, vereinfachen den Entwicklungsprozess und bieten eine konsistentere und vorhersehbarere Entwicklungserfahrung. Ein Entwickler kann eine Datenbank mit SQL-Datenbankprojekten in der Wahl der 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. Die dacpac kann verwendet werden, um eine Datenbank mit neuen oder geänderten Objekten zu aktualisieren, auf eine frühere Version der Datenbank zu rückgängig machen oder eine völlig neue Datenbank bereitzustellen. Umgekehrt kann ein 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 sie mit dem Update fortfahren.

Vorgänge

Ein DAC vereinfacht die Entwicklung, Bereitstellung und Verwaltung von Datenebenenelementen, 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 Vorgänge:

  • 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

Ein BACPAC konzentriert sich dagegen auf das Erfassen von Schemas und Daten, die zwei Standard Vorgänge unterstützen:

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

DAC-Tools

Datenebenenanwendungsartefakte 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 ein 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.

DAC-Konzepte

Versionsunterstützung

Im Allgemeinen sind DAC-Tools in der Lage, DACpac-Dateien zu lesen, die von DAC-Tools aus früheren SQL Server-Versionen generiert wurden, und können DAC-Pakete auch in früheren Versionen von SQL Server bereitstellen. DAC-Tools aus früheren Versionen können jedoch keine dacpac-Dateien lesen, die von DAC-Tools aus späteren Versionen generiert wurden. Mindestens unterstützen DAC-Tools die in-Support-Versionen von SQL Server zum Zeitpunkt ihrer Veröffentlichung.

Dateiformat

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

Registrierung von Anwendungen auf Datenebene

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

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

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

  • UPGRADE : Ein Upgrade einer Datenbank mithilfe von .dacpac ist möglich.

Weitere Informationen zu diesen Aktionen finden Sie unter den folgenden Aufgaben.

Task 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