Datenebenenanwendungen (DAC)
Gilt für: SQL Server Azure SQL-Datenbank
Azure SQL Managed Instance
Eine Datenebenenanwendung (Data-Tier Application, DAC) ist eine logische Datenbankentität, die alle SQL Server Objekte definiert, z. B. Tabellen, Sichten und Instanzobjekte, einschließlich Anmeldungen, die der Datenbank eines Benutzers zugeordnet sind. Eine DAC ist eine eigenständige Einheit des gesamten Datenbankmodells und in einem Artefakt portierbar, das als DAC-Paket oder DACPAC bezeichnet wird. Die Toolunterstützung für Datenebenenanwendungen ermöglicht Es Entwicklern und Datenbankadministratoren, dacpacs in neuen oder vorhandenen Datenbanken bereitzustellen. Bereitstellungen in einer vorhandenen Datenbank aktualisiert das Datenbankmodell aus dem vorhandenen Zustand, um dem Inhalt der dacpac-Datei zu entsprechen. Entwickler erstellen DACs aus SQL-Datenbankprojekten, ein deklaratives Entwicklungskonzept zum Erstellen von SQL-Objekten, das die Quellcodeverwaltung für das Datenbankschema ermöglicht.
Eine BACPAC-Datei 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 dazu führen, dass Entwickler und DbAs Skripts austauschen und Integrationshinweise für Anwendungsupdates freigeben. Obwohl dieser Prozess unter bestimmten Umständen akzeptabel ist, kann die Integration in DevOps-Pipelines und allgemeine Entwicklungsprozesse schwierig sein.
Datenebenenanwendungen ermöglichen die deklarative Datenbankentwicklung, vereinfachen den Entwicklungsprozess und bieten eine konsistentere und vorhersagbare Entwicklungsumgebung. Ein Entwickler kann eine Datenbank mit SQL-Datenbankprojekten in seiner Wahl der integrierten Entwicklungsumgebung (IDE) erstellen. Ein SQL-Datenbankprojekt kann lokal oder in einer DevOps-Pipeline in ein 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-Datei kann verwendet werden, um eine Datenbank mit neuen oder geänderten Objekten zu aktualisieren, eine frühere Version der Datenbank wiederhergestellt oder eine völlig neue Datenbank bereitzustellen. Umgekehrt kann eine DACPAC-Datei aus einer vorhandenen Datenbank generiert und verwendet werden, um ein SQL-Datenbankprojekt basierend auf dem aktuellen Datenbankschema einzurichten.
Der Vorteil einer DAC-gesteuerte Bereitstellung gegenüber einem 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 Bereitstellung/Upgrades von Datenbanken verwendet werden, können riskante Aktionen kennzeichnen, z. B. Änderungen der Spaltengröße, die zu Datenverlust führen können, und die Möglichkeit, den Upgradeplan direkt zu erstellen. Dieser Plan kann manuell ausgewertet werden, bevor mit dem Update fortgefahren wird.
Operations
Eine DAC vereinfacht die Entwicklung, Bereitstellung und Verwaltung von Datenebenenelementen, die eine Anwendung unterstützen.
DACPAC
Ein DAC unterstützt die folgenden Vorgänge:
EXTRACT : Der Benutzer kann eine Datenbank in eine DACPAC-Datei extrahieren. Weitere Informationen finden Sie unter SqlPackage-Extrahieren und Extrahieren einer DAC aus einer Datenbank.
BEREITSTELLEN/PUBLISH: Der Benutzer kann eine DACPAC-Datei auf einem Hostserver bereitstellen. Wenn die Bereitstellung für eine vorhandene Datenbank erfolgt, wird der Unterschied zwischen der Datenbank und der DAC als Objektaktualisierungsvorgang auf die Datenbank angewendet. Der Begriff "publish" wird häufig synonym mit "deploy" verwendet. Weitere Informationen finden Sie unter SqlPackage veröffentlichen, Bereitstellen einer Datenebenenanwendung und Bereitstellen einer Datenbank mithilfe einer DAC.
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 einer DACPAC-Datei 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 hingegen konzentriert sich auf die Erfassung von Schemas und Daten, die zwei Hauptvorgänge unterstützen:
EXPORT: Der Benutzer kann das Schema und die Daten einer Datenbank in eine BACPAC-Datei exportieren. Weitere Informationen finden Sie unter SqlPackage-Export und Exportieren einer Datenebenenanwendung.
IMPORT : Der Benutzer kann das Schema und die Daten in eine neue Datenbank importieren. Weitere Informationen finden Sie unter SqlPackage-Import und Importieren einer BACPAC-Datei zum Erstellen einer neuen Benutzerdatenbank.
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 über mehrere Tools hinweg 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-Datei extrahiert oder in eine BACPAC-Datei exportiert werden. Umgekehrt kann eine BACPAC-Datei in eine neue Datenbank importiert werden, oder eine DACPAC-Datei kann in einer neuen oder vorhandenen 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 für eine Datenbank bereitzustellen und ein Datenbankpaket in ein SQL-Projekt zu importieren.
DAC-Konzepte
Versionsunterstützung
Im Allgemeinen können DAC-Tools DACPAC-Dateien 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 höheren Versionen generiert wurden. DAC-Tools unterstützen mindestens die unterstützten Versionen von SQL Server zum Zeitpunkt ihrer Veröffentlichung.
Dateiformat
Eine .dacpac ist ein komprimierter Ordner mit der Erweiterung .dacpac, und ähnlich ist eine BACPAC-Datei ein komprimierter Ordner mit der Bacpac-Erweiterung. Ein erweiterter Benutzer kann die Datei entpacken, um die verschiedenen XML-Abschnitte anzuzeigen, die Details zum Ursprung, zu den Objekten in der Datenbank und zu anderen Merkmalen darstellen. Um eine DACPAC - oder BACPAC-Datei zu entpacken, ersetzen Sie die Dateierweiterung durch .zip , und verwenden Sie ein Hilfsprogramm für die Dateikomprimierung, um die Datei zu entzippen.
Datenebenenanwendungsregistrierung
In SQL Server Management Studio andere Aktionen für eine Datenbank ausgeführt werden können, 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 : Eine Datenbank kann mithilfe einer DACPAC-Datei aktualisiert werden.
Weitere Informationen zu diesen Aktionen finden Sie in den folgenden 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 die Integrität derzeit bereitgestellter DACs mithilfe des SQL Server-Hilfsprogramms angezeigt wird. | Überwachen von Datenebenenanwendungen |
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 |