Экспорт в файл BACPAC — База данных SQL Azure и Управляемый экземпляр SQL Azure
Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure
Если нужно экспортировать базу данных для создания архива или для перехода на другую платформу, можно экспортировать схему и данные базы данных в BACPAC-файл. BACPAC-файл — это ZIP-файл с расширением BACPAC, содержащий метаданные и информацию из базы данных. BACPAC-файл можно сохранить в Хранилище BLOB-объектов Azure или в локальном хранилище, а затем импортировать обратно в Базу данных SQL Azure, Управляемый экземпляр SQL Azure или экземпляр SQL Server.
Рекомендации
Для обеспечения согласованности экспорта необходимо убедиться, что во время экспорта действие записи не происходит или экспортируется из согласованной транзакции копии базы данных.
При экспорте в хранилище BLOB-объектов максимальный размер BACPAC-файла составляет 200 ГБ. Чтобы архивировать более крупный BACPAC-файл, экспортируйте в локальное хранилище с помощью SqlPackage.
Имя файла служба хранилища Azure не может заканчиваться и
.
не может содержать специальные символы, такие как пробел или>
<
,*
, ./
?
%
&
:
\
Имя файла должно быть меньше 128 символов.Если операция экспорта продолжается более 20 часов, она может быть отменена. Для повышения производительности во время экспорта можно сделать следующее.
- Временно повысить объем вычислительных ресурсов.
- Прекратить все операции чтения и записи во время экспорта.
- Используйте для всех больших таблиц кластеризованный индекс со значениями, отличными от NULL. Без кластеризованных индексов экспорт может завершиться ошибкой, если он продолжается более 6–12 часов. Это обусловлено тем, что службам экспорта требуется выполнить проверку таблицы, чтобы экспортировать всю таблицу. Хороший способ определить, оптимизированы ли таблицы для экспорта, и
DBCC SHOW_STATISTICS
убедитесь, что RANGE_HI_KEY не имеет значения NULL, и его значение имеет хорошее распределение. Дополнительную информацию см. в разделе DBCC SHOW_STATISTICS.
Для больших баз данных экспорт и импорт BACPAC может занять много времени и может завершиться сбоем по различным причинам.
Примечание.
BACPAC-файлы не предназначены для операций службы архивации и восстановления. Azure автоматически создает резервные копии для каждой пользовательской базы данных. Дополнительные сведения см. в обзоре непрерывности бизнес-процессов и автоматическом резервном копировании в База данных SQL Azure или автоматическом резервном копировании в Управляемый экземпляр SQL Azure.
Примечание.
Импорт и экспорт с помощью Приватного канала находится на этапе предварительной версии.
Портал Azure
Экспорт BACPAC базы данных из Управляемый экземпляр SQL Azure с помощью портал Azure в настоящее время не поддерживается. См. раздел Рекомендации.
Примечание.
Компьютеры, обрабатывающие запросы на импорт и экспорт, отправленные через портал Azure или PowerShell, должны хранить BACPAC-файл и временные файлы, созданные платформой приложения уровня данных (DacFX). Требуемое дисковое пространство может быть существенно разным для баз данных одного размера и в три раза превышать размер самой базы данных. Компьютеры, на которых выполняется запрос на импорт или экспорт, располагают только 450 ГБ пространства на локальном диске. В результате некоторые запросы могут завершиться ошибкой There is not enough space on the disk
. В этом случае обходным решением является запуск SqlPackage на компьютере с достаточным объемом локального дискового пространства. Мы советуем использовать SQLPackage для импорта и экспорта баз данных, превышающих 150 ГБ, чтобы избежать этой проблемы.
Чтобы экспортировать базу данных с помощью портала Azure, откройте страницу для базы данных и выберите Экспорт на панели инструментов.
Введите имя BACPAC-файла, выберите учетную запись хранения Azure и контейнер для экспорта, а также соответствующие учетные данные для доступа к базе данных-источнику. Для входа администратора SQL Server требуется, даже если вы являетесь администратором Azure, так как администратор Azure не соответствует разрешениям администратора в База данных SQL Azure или Управляемый экземпляр SQL Azure.
Нажмите ОК.
Чтобы отслеживать ход выполнения операции экспорта, откройте страницу логического сервера с экспортируемой базой данных. В разделе Управление даннымивыберите Журнал импорта и экспорта.
Служебная программа SQLPackage
Рекомендуется использовать служебную программу SqlPackage для масштабирования и обеспечения производительности в большинстве рабочих сред. Чтобы ускорить выполнение операций импорта и экспорта, можно параллельно запустить несколько команд SqlPackage для подмножества таблиц.
Экспорт Базы данных SQL с помощью программы командной строки SQLPackage описан в разделе Параметры и свойства операции экспорта. Программа SQLPackage доступна для Windows, macOS и Linux.
В этом примере показано, как экспортировать базу данных с помощью SqlPackage с универсальной проверкой подлинности Active Directory:
SqlPackage /a:Export /tf:testExport.BACPAC /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
Azure Data Studio
Azure Data Studio — это бесплатное средство с открытым исходным кодом и доступно для Windows, Mac и Linux. Расширение "DACPAC SQL Server" предоставляет интерфейс мастера для операций SqlPackage, включая экспорт и импорт. Дополнительные сведения об установке и использовании расширения см . в разделе о расширении dacpac SQL Server.
SQL Server Management Studio (SSMS)
SQL Server Management Studio предоставляет мастер экспорта базы данных в База данных SQL Azure или базу данных Управляемый экземпляр SQL в BACPAC-файл. Ознакомьтесь с разделом Export a Data-tier Application (Экспорт приложения уровня данных).
PowerShell
Экспорт BACPAC базы данных из Управляемый экземпляр SQL Azure с помощью PowerShell не поддерживается. См. раздел Рекомендации.
Используйте командлет New-AzRmSqlDatabaseExport, чтобы отправить запрос на экспорт базы данных в службу «База данных SQL Azure». В зависимости от размера базы данных операция экспорта может занять некоторое время.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
Чтобы проверить состояние запроса на экспорт, используйте командлет Get-AzRmSqlDatabaseImportExportStatus. Если выполнить этот командлет немедленно после запроса, то обычно возвращается сообщение Состояние: выполняется. Отображение сообщения Состояние: выполнен означает, что экспорт завершен.
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
Start-Sleep -s 10
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus
Отмена запроса на экспорт
Используйте API из раздела Операции с базой данных — отмена или команду Stop-AzSqlDatabaseActivity в PowerShell. Ниже приведен пример команды PowerShell:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Примечание.
Чтобы отменить операцию экспорта, вам потребуется одна из следующих ролей:
- Роль участника базы данных SQL или
- Настраиваемая роль Azure RBAC с разрешением
Microsoft.Sql/servers/databases/operations
Ограничения
- Экспорт BACPAC-файла в хранилище Azure premium с помощью методов, рассмотренных в этой статье, не поддерживается.
- Хранилище за брандмауэром сейчас не поддерживается.
- Неизменяемое хранилище сейчас не поддерживается.
- Управляемый экземпляр SQL Azure в настоящее время не поддерживает экспорт базы данных в BACPAC-файл с помощью портал Azure или Azure PowerShell. Чтобы экспортировать управляемый экземпляр в BACPAC-файл, используйте SQL Server Management Studio или SQLPackage.
- В настоящее время служба импорта и экспорта не поддерживает проверку подлинности идентификатора Microsoft Entra, если требуется многофакторная проверка подлинности.
- Службы Import\Export поддерживают только проверку подлинности SQL и идентификатор Microsoft Entra. Импорт\Экспорт несовместим с регистрацией приложения удостоверений Майкрософт.
Связанный контент
- Дополнительные сведения о долгосрочном хранении резервных копий отдельной базы данных или базы данных в пуле как альтернативе экспорту базы данных в архив см. в статье Долгосрочное хранение резервных копий. Задания агентов SQL можно использовать для планирования резервных копий только для копирования базы данных как альтернативу долгосрочному хранению архивных копий.
- Сведения об импорте BACPAC-файла в базу данных SQL Server см. в статье Импорт файла BACPAC для создания новой пользовательской базы данных.
- Сведения об экспорте BACPAC-файла из базы данных SQL Server см. в разделе Export a Data-tier Application (Экспорт приложения уровня данных).
- Дополнительные сведения о переносе базы данных с помощью службы DMS см. в разделе Перенос баз данных из SQL Server в Базу данных SQL Azure в автономном режиме с помощью DMS.
- Если вы экспортируете из SQL Server в качестве прелюдии для миграции в База данных SQL Azure, см. статью "Миграция базы данных SQL Server в База данных SQL Azure".
- Сведения об управлении ключами хранилища и подписанными URL-адресами и подписанными URL-адресами см . в рекомендациях по безопасности для хранилища BLOB-объектов.