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 .dacpac 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 Azure 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 Azure 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:
EXTRACT - Der Benutzer kann eine Datenbank in eine .dacpac-Datei extrahieren. Weitere Informationen finden Sie unter SqlPackage-Extrakt und Extrahieren eines DAC aus einer Datenbank.
DEPLOY/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 dem DAC als Objektaktualisierungsvorgang auf die Datenbank angewendet. Der Begriff „publish“ wird häufig synonym mit „deploy“ verwendet. Weitere Informationen finden Sie unter SqlPackage-Veröffentlichung, Bereitstellen einer Datenschichtanwendung und Bereitstellen einer Datenbank unter Verwendung von 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 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:
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 Datenschichtanwendung.
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
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 |
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für