Parameter und Eigenschaften für die Export-Aktion von SqlPackage

Mit der Aktion „SqlPackage Export“ wird eine verbundene Datenbank in eine BACPAC-Datei (.bacpac) exportiert. Standardmäßig sind die Daten für alle Tabellen in der BACPAC-Datei enthalten. Optional können Sie auch nur eine Teilmenge der Tabellen angeben, für die Daten exportiert werden sollen. Die Exportaktion ist Teil der Funktionalität zur Portabilität der Datenbank von SqlPackage.

Hinweis

Während Microsoft Entra-ID der neue Name für Azure Active Directory (Azure AD) ist, bleibt Azure AD in einigen fest kodierten Elementen wie Benutzeroberfläche-Feldern, Verbindungsanbietern, Fehlercodes und Cmdlets erhalten, um Störungen in bestehenden Umgebungen zu vermeiden. In diesem Artikel sind die beiden Namen austauschbar.

Hinweis

„SqlPackage Export“ ist am besten für Datenbanken unter 200 GB geeignet. Für größere Datenbanken können Sie den Vorgang mithilfe von Eigenschaften optimieren, die Sie in diesem Artikel und in den Tipps unter Problembehandlung mit SqlPackage finden oder alternativ die Portabilität der Datenbank durch Daten in Parquet-Dateien erreichen.

Befehlszeilensyntax

SqlPackage initiiert die angegebenen Aktionen mithilfe der Parameter, Eigenschaften und SQLCMD-Variablen, die in der Befehlszeile angegeben sind.

SqlPackage /Action:Export {parameters} {properties}

Erforderliche Parameter

Für die Exportaktion ist ein TargetFile-Parameter erforderlich, um den Namen und Speicherort der zu erstellenden BACPAC-Datei anzugeben. Dieser Speicherort muss vom Benutzer, der den Befehl ausführt, beschreibbar sein. Zudem muss der enthaltende Ordner muss vorhanden sein.

Für die Exportaktion muss außerdem eine Datenbankquelle über eine Kombination aus Folgendem angegeben werden:

  • SourceServerName- und SourceDatabaseName-Parameter oder
  • SourceConnectionString-Parameter

Beispiele

# example export from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example export using short form parameter names, skips schema validation
SqlPackage /a:Export /ssn:"{yourserver}.database.windows.net,1433" /sdn:"AdventureWorksLT" /su:"sqladmin" \
    /sp:"{your_password}" /tf:"C:\AdventureWorksLT.bacpac" /p:VerifyExtraction=False

# example export using Microsoft Entra managed identity
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example export connecting using Microsoft Entra username and password
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example export connecting using Microsoft Entra universal authentication
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parameter für die Export-Aktion

Parameter Kurzform Wert BESCHREIBUNG
/AccessToken: /at: {string} Gibt das Zugriffstoken für die tokenbasierte Authentifizierung an, das beim Herstellen einer Verbindung mit der Zieldatenbank verwendet werden soll.
/Action: /a: Exportieren Gibt die auszuführende Aktion an.
/AzureCloudConfig: /acc: {string} Gibt die benutzerdefinierten Endpunkte zum Herstellen einer Verbindung mit Microsoft Entra im folgenden Format an: AzureActiveDirectoryAuthority={Wert};DatabaseServicePrincipalName={Wert}.
/Diagnostics: /d: {True|False} Gibt an, ob die Diagnoseprotokollierung in der Konsole ausgegeben wird. Der Standardwert lautet „False“.
/DiagnosticsFile: /df: {string} Gibt eine Datei an, in der Diagnoseprotokolle gespeichert werden.
/MaxParallelism: /mp: {int} Gibt den Parallelitätsgrad für gleichzeitige Vorgänge in einer Datenbank an. Der Standardwert ist 8.
/OverwriteFiles: /of: {True|False} Gibt an, ob vorhandene Dateien von SqlPackage überschrieben werden sollen. Bei Angabe von FALSE wird die Aktion von SqlPackage abgebrochen, wenn eine vorhandene Datei gefunden wird. Der Standardwert ist TRUE.
/Properties: /p: {PropertyName}={Value} Gibt ein Name-Wert-Paar für eine aktionsspezifische Eigenschaft an: {PropertyName}={Value}.
/Quiet: /q: {True|False} Gibt an, ob ausführliches Feedback unterdrückt wird. Der Standardwert lautet „False“.
/SourceConnectionString: /scs: {string} Gibt eine gültige SQL Server-/Azure-Verbindungszeichenfolge für die Quelldatenbank an. Die Angabe dieses Parameters schließt die Verwendung aller anderen Quellparameter aus.
/SourceDatabaseName: /sdn: {string} Definiert den Namen der Quelldatenbank.
/SourceEncryptConnection: /sec: {Optional|Obligatorisch|Strikt|True|False} Gibt an, ob für die Verbindung mit der Quelldatenbank die SQL-Verschlüsselung verwendet werden soll. Der Standardwert ist TRUE.
/SourceHostNameInCertificate: /shnic: {string} Gibt den Wert an, der verwendet wird, um das TLS/SSL-Zertifikat des Quell-SQL-Servers zu überprüfen, wenn die Kommunikationsebene mit TLS verschlüsselt wird.
/SourcePassword: /sp: {string} Definiert in SQL Server-Authentifizierungsszenarios das Kennwort für den Zugriff auf die Quelldatenbank.
/SourceServerName: /ssn: {string} Definiert den Namen des Servers, auf dem die Quelldatenbank gehostet wird.
/SourceTimeout: /st: {int} Gibt das Timeout in Sekunden für das Herstellen einer Verbindung mit der Quelldatenbank an.
/SourceTrustServerCertificate: /stsc: {True|False} Gibt an, ob zum Verschlüsseln der Verbindung mit der Quelldatenbank TLS verwendet und das Durchlaufen der Zertifikatkette zum Überprüfen der Vertrauenswürdigkeit umgangen werden soll. Der Standardwert ist "False".
/SourceUser: /su: {string} Definiert in SQL Server-Authentifizierungsszenarios den SQL Server-Benutzer für den Zugriff auf die Quelldatenbank.
/TargetFile: /tf: {string} Gibt eine Zieldatei (d. h. eine DACPAC-Datei) an, die anstelle einer Datenbank als Ziel der Aktion verwendet werden soll. Bei Verwendung dieses Parameters sind keine anderen Zielparameter zulässig. Dieser Parameter ist für Aktionen ungültig, die ausschließlich Datenbankziele unterstützen.
/TenantId: /tid: {string} Stellt die Microsoft Entra-Mandanten-ID oder den Domänenamen dar. Diese Option ist für die Unterstützung von Gastbenutzern oder importierten Microsoft Entra-Benutzern sowie für Microsoft-Konten wie beispielsweise outlook.com, hotmail.com oder live.com erforderlich. Bei Auslassen dieses Parameters wird die Standardmandanten-ID für Microsoft Entra ID verwendet. Hierbei wird davon ausgegangen, dass der authentifizierte Benutzer ein nativer Benutzer dieses Mandanten ist. In diesem Fall werden jedoch Gastbenutzer oder importierte Benutzer und/oder Microsoft-Konten, die in dieser Microsoft Entra ID gehostet werden, nicht unterstützt, und der Vorgang ist nicht erfolgreich.
Weitere Informationen finden Sie unter Universelle Authentifizierung bei SQL-Datenbank und Azure Synapse Analytics (SSMS-Unterstützung für MFA).
/ThreadMaxStackSize: /tmss: {int} Gibt die maximale Größe in Megabyte für den Thread an, der die Aktion in SqlPackage ausführt. Diese Option sollte nur verwendet werden, wenn Stapelüberlaufausnahmen festgestellt werden, die beim Analysieren sehr umfangreicher Transact-SQL-Anweisungen auftreten.
/UniversalAuthentication: /ua: {True|False} Gibt an, ob die universelle Authentifizierung verwendet werden soll. Bei Festlegung auf TRUE wird das interaktive Authentifizierungsprotokoll aktiviert, das MFA unterstützt. Diese Option kann auch für die Microsoft Entra-Authentifizierung ohne MFA verwendet werden. Hierbei wird ein interaktives Protokoll verwendet, bei dem der Benutzer seinen Benutzernamen und sein Kennwort oder eine integrierte Authentifizierung (Windows-Anmeldeinformationen) eingeben muss. Bei Festlegung von „/UniversalAuthentication“ auf TRUE kann in „SourceConnectionString“ (/scs) keine Microsoft Entra-Authentifizierung angegeben werden. Bei Festlegung von „/UniversalAuthentication“ auf FALSE muss in „SourceConnectionString“ (/scs) die Microsoft Entra-Authentifizierung angegeben werden.
Weitere Informationen finden Sie unter Universelle Authentifizierung bei SQL-Datenbank und Azure Synapse Analytics (SSMS-Unterstützung für MFA).

Spezifische Eigenschaften für die Export-Aktion

Eigenschaft Wert BESCHREIBUNG
/p: CommandTimeout=(INT32 '60') Gibt das Befehlstimeout in Sekunden zum Ausführen von Abfragen in SQL Server zurück.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Gibt den Typ der Komprimierung an.
/p: DatabaseLockTimeout=(INT32 '60') Gibt das Datenbank-Sperrtimeout für Abfragen an SQL Server in Sekunden an. Verwenden Sie „-1“, um unbegrenzt zu warten.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Gibt an, ob alle Objektnamen in Protokollen durch einen zufälligen Hashwert ersetzt werden sollen.
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Hiermit wird angegeben, ob Indizes oder Statistiken für Spalten, die eine Verschlüsselung nach dem Zufallsprinzip und Enclave-fähige Spaltenverschlüsselungsschlüssel verwenden, ignoriert (nicht in die generierte BACPAC-Datei aufgenommen) werden sollen. In der Standardeinstellung (FALSE) wird die Exportaktion durch einen Index oder eine Statistik für eine Spalte blockiert, die mit zufälliger Verschlüsselung und einem Enclave-fähigen Spaltenverschlüsselungsschlüssel verschlüsselt wurde.
/p: LongRunningCommandTimeout=(INT32 '0') Gibt das Timeout für zeitintensive Befehle beim Ausführen von Abfragen an SQL Server in Sekunden zurück. Verwenden Sie „0“, um unbegrenzt zu warten.
/p: Storage=({File|Memory}) Gibt den Typ des Hintergrundspeichers an, der während der Extraktion für das Schemamodell verwendet wird. „Memory“ ist die Standardeinstellung für die .NET Core-Version von SqlPackage. „File“ ist nur als Standardeinstellung für die .NET Framework-Version von SqlPackage verfügbar.
/p: TableData=(STRING) Gibt die Tabelle an, aus der Daten extrahiert werden. Geben Sie den Tabellennamen mit oder ohne Klammern um die Namensteile im folgenden Format an: Schemaname.Tabellen-ID. Diese Eigenschaft kann mehrfach angegeben werden, um mehrere Optionen anzuzeigen.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Diese Eigenschaft ist veraltet, und von der Verwendung wird abgeraten. Gibt die Version an, die für die Ziel-Engine für Azure SQL-Datenbank erwartet wird.
/p: TempDirectoryForTableData=(STRING) Gibt ein alternatives temporäres Verzeichnis an, das zum Puffern von Tabellendaten verwendet wird, bevor diese in die Paketdatei geschrieben werden. Der an diesem Speicherort erforderliche Speicherplatz kann sehr groß ausfallen und steht im Verhältnis zur vollständigen Größe der Datenbank.
/p: VerifyExtraction=(BOOLEAN 'True') Gibt an, ob das extrahierte Schemamodell überprüft werden soll. Wenn diese Einstellung auf TRUE festgelegt ist, werden Schemavalidierungsregeln für die DACPAC- oder BACPAC-Datei ausgeführt.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Gibt an, ob die unterstützten Volltextdokumenttypen für Microsoft Azure SQL-Datenbank Version 12 überprüft werden sollen

Nächste Schritte