Параметры и свойства экспорта SqlPackage

Действие экспорта SqlPackage экспортирует подключенную базу данных в BACPAC-файл (BAcpac). По умолчанию данные для всех таблиц будут включены в BACPAC-файл. При необходимости можно указать только подмножество таблиц, для которых следует выполнить экспорт данных. Действие экспорта является частью функции переносимости базы данных SqlPackage.

Примечание.

Хотя идентификатор Microsoft Entra — это новое имя Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD по-прежнему остается в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.

Примечание.

Экспорт SqlPackage лучше всего подходит для баз данных в возрасте до 200 ГБ. Для больших баз данных может потребоваться оптимизировать операцию с помощью свойств, доступных в этой статье, и советов по устранению неполадок с sqlPackage или также обеспечить переносимость базы данных с помощью данных в файлах parquet.

Синтаксис для командной строки

SqlPackage инициирует действия, указанные с помощью параметров, свойств и переменных SQLCMD, указанных в командной строке.

SqlPackage /Action:Export {parameters} {properties}

Обязательные параметры

Для действия экспорта требуется TargetFile параметр, чтобы указать имя и расположение BACPAC-файла. Это расположение должно быть записываемым пользователем, выполняющим команду, и содержащая папка должна существовать.

Для действия экспорта также требуется указать источник базы данных с помощью сочетания:

  • SourceServerName и SourceDatabaseName параметры или
  • параметром SourceConnectionString.

Примеры

# 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;"

Параметры действия экспорта

Параметр Краткая форма значение Описание
/AccessToken: /В: {строка} Определяет маркер доступа для аутентификации на основе маркеров. Этот маркер используется при подключении к целевой базе данных.
/Action: /a: Экспорт (Export) Указывает действие, подлежащее выполнению.
/AzureCloudConfig: /Acc: {строка} Указывает пользовательские конечные точки для подключения к идентификатору Microsoft Entra в формате: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/Diagnostics: /D: {True|False} Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False.
/DiagnosticsFile: /Df: {строка} Указывает файл, в котором следует вести журнал диагностики.
/MaxParallelism: /Mp: {целое_число} Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8.
/OverwriteFiles: /of: {True|False} Указывает, должен ли SqlPackage перезаписать существующие файлы. Указание false приводит к прерыванию действия SqlPackage, если обнаружен существующий файл. Значение по умолчанию — True.
/Properties: /p: {имя_свойства}={значение} Указывает пару "имя — значение" для связанного с действием свойства; {имя_свойства}={значение}.
/Quiet: /Q: {True|False} Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False.
/SourceConnectionString: /Скс: {строка} Указывает допустимую строка подключения SQL Server или Azure в исходную базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами источника.
/SourceDatabaseName: /Sdn: {строка} Определяет имя базы данных-источника.
/SourceEncryptConnection: /Сек: {Необязательный|Обязательный|Строгий|True|False} Указывает, следует ли использовать шифрование SQL для соединения с базой данных-источником. Значение по умолчанию — True.
/SourceHostNameInCertificate: /shnic: {строка} Указывает значение, используемое для проверки исходного TLS/SSL-сертификата SQL Server, когда уровень обмена данными шифруется с помощью TLS.
/SourcePassword: /Sp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к базе данных-источнику.
/SourceServerName: /Ssn: {строка} Определяет имя сервера, где размещается база данных-источник.
/SourceTimeout: /St: {целое_число} Задает время ожидания подключения к базе данных-источнику (в секундах).
/SourceTrustServerCertificate: /stsc: {True|False} Определяет, используется ли протокол TLS для шифрования подключения к базе данных-источнику без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/SourceUser: /Су: {строка} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к базе данных-источнику.
/TargetFile: /Tf: {строка} Указывает целевой файл (то есть DACPAC-файл) для использования в качестве целевого объекта действия вместо базы данных. Если используется этот параметр, все остальные параметры целевого объекта будут недействительны. Этот параметр будет недопустимым для действий, которые поддерживают только целевые объекты базы данных.
/TenantId: /Tid: {строка} Представляет идентификатор клиента Microsoft Entra или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей Microsoft Entra, а также учетных записей Майкрософт, таких как outlook.com, hotmail.com или live.com. Если этот параметр опущен, будет использоваться идентификатор клиента по умолчанию для идентификатора Microsoft Entra, предполагая, что прошедший проверку подлинности пользователь является собственным пользователем для этого клиента. Однако в этом случае любые гостевые или импортированные пользователи и /или учетные записи Майкрософт, размещенные в этом идентификаторе Microsoft Entra, не поддерживаются, и операция завершится ошибкой.
Дополнительные сведения см. в статье универсальной проверки подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/ThreadMaxStackSize: /tmss: {целое_число} Указывает максимальный размер в мегабайтах для потока, выполняемого действием SqlPackage. Этот параметр следует использовать только при обнаружении исключений переполнения стека, возникающих при анализе очень больших инструкций Transact-SQL.
/UniversalAuthentication: /Ua: {True|False} Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно использовать для проверки подлинности Microsoft Entra без MFA, используя интерактивный протокол, требующий от пользователя ввод имени пользователя и пароля или встроенной проверки подлинности (учетные данные Windows). Если для параметра /UniversalAuthentication задано значение True, проверка подлинности Microsoft Entra не может быть указана в source Подключение ionString (/scs). Если для параметра /UniversalAuthentication задано значение False, проверка подлинности Microsoft Entra должна быть указана в источнике Подключение ionString (/scs).
Дополнительные сведения см. в статье универсальной проверки подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).

Свойства, относящиеся к действию экспорта

Свойство Значение Описание
/p: CommandTimeout=(INT32 '60') Задает время ожидания команды в секундах при выполнении запросов к SQL Server.
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') Указывает тип сжатия.
/p: DatabaseLockTimeout=(INT32 '60') Позволяет задать превышение времени ожидания блокировки в секундах для базы данных при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "-1".
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением.
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') Указывает, следует ли игнорировать индексы или статистику для столбцов, зашифрованных с использованием случайного шифрования, а также ключи шифрования столбцов с поддержкой анклава (не включаются в создаваемый пакет BACPAC). По умолчанию (false) любой индекс или статистика по столбцу, зашифрованному с помощью случайного шифрования и ключа шифрования столбца с поддержкой анклава, блокирует действие экспорта.
/p: LongRunningCommandTimeout=(INT32 '0') Позволяет задать время ожидания в секундах для длительной команды при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "0".
/p: Storage=({File|Memory}) Указывает тип резервного хранилища для модели схемы, используемой во время извлечения. "Memory" — значение по умолчанию для версии SqlPackage для .NET Core. Значение "File" доступно и является значением и по умолчанию для версии SqlPackage для .NET Framework.
/p: TableData=(STRING) Указывает таблицу, из которой будут извлечены данные. Укажите имя таблицы со скобками или без скобок. Имя должно быть указано в формате: имя_схемы.идентификатор_таблицы. Это свойство может быть указано несколько раз, чтобы указать несколько параметров.
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') Это свойство не устарело, и его не рекомендуется использовать. Указывает версию целевого ядра для Базы данных SQL Azure.
/p: TempDirectoryForTableData=(STRING) Указывает альтернативный временный каталог, используемый для буферизации табличных данных перед записью в файл пакета. Пространство, необходимое в этом расположении, может быть большим и определяется относительно полного размера базы данных.
/p: VerifyExtraction=(BOOLEAN 'True') Указывает, следует ли проверять извлеченную модель схемы. Если задано значение true, правила проверки схемы выполняются для DACPAC или BACPAC.
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Указывает, следует ли проверять поддерживаемые типы полнотекстовых документов для базы данных Microsoft Azure SQL версии 12.

Next Steps