Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:База данных SQL Azure
Управляемый экземпляр SQL Azure
Базу данных SQL Server можно импортировать в База данных SQL Azure или Управляемый экземпляр SQL с помощью файла .bacpac. Вы можете импортировать данные из BACPAC-файла, хранящегося в хранилище BLOB-объектов #REF! (только для стандартного хранилища) или из локального хранилища на локальном сервере. Чтобы увеличить скорость импорта, предоставив больше и более быстрых ресурсов, масштабируйте базу данных до более высокого уровня обслуживания и размера вычисления во время процесса импорта. После завершения импорта эти значения можно уменьшить.
Примечание.
Импорт или экспорт База данных SQL Azure с помощью частного подключения находится в предварительной версии.
Использование портала #REF!
Просмотрите это видео, чтобы узнать, как импортировать из BACPAC-файла на портале #REF! или продолжить чтение:
- Портал #REF!only поддерживает создание одной базы данных в База данных SQL Azure и only из BACPAC-файла, хранящегося в хранилище BLOB-объектов #REF!.
- Чтобы перенести базу данных в Управляемый экземпляр SQL Azure из BACPAC-файла, используйте SQL Server Management Studio или служебную программу командной строки >
SqlPackage. Портал #REF! и Azure PowerShell в настоящее время не поддерживаются.
Предупреждение
BACPAC-файлы размером более 150 ГБ, созданные из SqlPackage, могут не импортироваться с портала #REF! или Azure PowerShell с сообщением об ошибке, которое указывает File contains corrupted data. Это результат известной проблемы, и решением является использование служебной программы командной строки для импорта BACPAC-файла. Дополнительные сведения см. в разделе SqlPackage и список проблем.
Примечание.
Компьютеры, обрабатываемые запросы на импорт и экспорт, отправленные через портал #REF! или PowerShell, должны хранить BACPAC-файл, а также временные файлы, созданные Data-Tier Application Framework (DacFX). Требуемое дисковое пространство может быть существенно разным для баз данных одного размера и в три раза превышать размер самой базы данных. Компьютеры, на которых выполняется запрос на импорт или экспорт, располагают только 450 ГБ пространства на локальном диске. В результате некоторые запросы могут завершиться ошибкой . В этом случае обходной путь — запустить служебную программу командной строки SqlPackage на компьютере с достаточным объемом места на локальном диске. Мы рекомендуем использовать служебную программу командной строки SqlPackage для импорта и экспорта баз данных размером более 150 ГБ, чтобы избежать этой проблемы.
Чтобы импортировать из BACPAC-файла в новую базу данных с помощью портала #REF!, откройте соответствующую страницу сервера, а затем на панели инструментов выберите Import database.
Скриншот страницы портала #REF!, содержащей обзор логического сервера с выбранным импортом базы данных.
Выберите "Выбрать резервную копию". Выберите учетную запись хранения, в которой размещена база данных, а затем выберите BACPAC-файл, из которого необходимо импортировать.
Укажите новый размер базы данных (обычно совпадает с источником) и укажите конечные SQL Server учетные данные. Список возможных значений для новой базы данных в База данных SQL Azure см. в разделе Create Database.
Нажмите ОК.
Чтобы отслеживать ход выполнения импорта, откройте страницу сервера базы данных. В разделе Параметры выберите Журнал импорта и экспорта. При успешном выполнении импорта отображается состояние Завершено.
Выберите Базы данных SQL, чтобы проверить активность базы данных на сервере, и убедитесь, что для новой базы данных задано состояние В сети.
Импорт с аутентификацией с помощью управляемого удостоверения (предварительная версия)
База данных SQL Azure поддерживает импорт BACPAC-файла с помощью проверки подлинности управляемого удостоверения. Этот параметр включает полностью операции импорта без учетных данных и рекомендуется для сред, которые отключают проверку подлинности SQL или применяют проверку подлинности только #REF!.
Вы можете импортировать базу данных в новую базу данных или в существующую пустую базу данных.
Подробное руководство см. в разделе "Использование управляемого удостоверения" с импортом и экспортом (предварительная версия).
Чтобы импортировать BACPAC-файл с помощью аутентификации управляемой идентичности, требуется следующая конфигурация:
- Пользовательское назначенное управляемое удостоверение (UAMI) назначено логическому серверу для базы данных База данных SQL Azure.
- На сервере настроено управляемое удостоверение в качестве администратора #REF!.
- Управляемое удостоверение назначено для роли Storage Blob Data Reader на исходной учетной записи служба хранилища Azure. Это управляемое удостоверение может быть таким же, как назначенное серверу, или другим.
- Логический сервер, управляемое удостоверение и учетная запись хранения находятся в одном клиенте #REF!.
Следующие сценарии не поддерживаются.
- Операции импорта между клиентами.
- Управляемое удостоверение, назначенное только на уровне базы данных.
Примечание.
Импорт с использованием аутентификации управляемого удостоверения в настоящее время находится на этапе предварительного просмотра и доступен только для База данных SQL Azure.
Использование SqlPackage
Сведения о импорте базы данных SQL Server с помощью служебной программы командной строки SqlPackage см. в разделе import parameters and properties. Вы можете скачать последнюю версию SqlPackage для #REF!, macOS или Linux.
Для масштабирования и производительности рекомендуется использовать SqlPackage в большинстве рабочих сред, а не на портале #REF!. Для получения информации о миграции с помощью файлов BACPAC см. блог группы консультантов SQL Server по клиентам о миграции из SQL Server в База данных SQL Azure с помощью файлов BACPAC.
Модель подготовки на основе DTU поддерживает выбор значений максимального размера базы данных для каждого уровня. При импорте базы данных используйте одно из этих поддерживаемых значений.
Следующая команда SqlPackage импортирует базу данных из локального хранилища в логический SQL-сервер с именем . Создается новая база данных, названная , с уровнем Premium и целевым показателем P6. Измените эти значения соответствующим образом для вашей среды.
SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=<migratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6
Внимание
Чтобы подключиться к База данных SQL Azure за корпоративным брандмауэром, брандмауэр должен иметь порт 1433. Чтобы подключиться к Управляемый экземпляр SQL, необходимо установить подключение point-to-site или express route connection.
В качестве альтернативы имени пользователя и паролю можно использовать Microsoft Entra ID (ранее Azure Active Directory). В настоящее время служба импорта и экспорта не поддерживает проверку подлинности Microsoft Entra ID при необходимости многофакторной проверки подлинности. Замените параметры имени пользователя и пароля для и . В этом примере показано, как импортировать базу данных с помощью SqlPackage с проверкой подлинности #REF!:
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Visual Studio Code
Расширение MSSQL для Visual Studio Code — это бесплатное расширение с открытым кодом, доступное для #REF!, macOS и Linux. Расширение включает опыт работы с приложениями уровня данных (предварительная версия) для операций SqlPackage, включая экспорт и импорт. Дополнительные сведения об установке и использовании расширения см. в расширении MSSQL для Visual Studio Code.
С помощью PowerShell
Примечание.
Управляемый экземпляр SQL Azure в настоящее время не поддерживает миграцию базы данных в базу данных экземпляра из файла BACPAC с помощью Azure PowerShell. Чтобы импортировать в управляемый экземпляр SQL, используйте SQL Server Management Studio или SQLPackage.
Примечание.
Компьютеры, обрабатывая запросы на импорт и экспорт, отправленные через портал или PowerShell, должны хранить BACPAC-файл, а также временные файлы, созданные Data-Tier Application Framework (DacFX). Требуемое место на диске значительно различается для баз данных одинакового размера и может составлять до трех размеров базы данных. Компьютеры, на которых выполняется запрос на импорт или экспорт, располагают только 450 ГБ пространства на локальном диске. В результате некоторые запросы могут завершиться ошибкой: В этом случае обходным решением является запуск SqlPackage на компьютере с достаточным объемом локального дискового пространства. При импорте или экспорте баз данных, размер которых превышает 150 ГБ, используйте SqlPackage, чтобы избежать этой проблемы.
- PowerShell
- Azure CLI
Внимание
Модуль PowerShell Azure Resource Manager (AzureRM) устарел и не рекомендуется к использованию с 29 февраля 2024 г. Все будущие разработки должны использовать модуль Az.Sql. Пользователям рекомендуется выполнить миграцию из AzureRM в модуль Az PowerShell, чтобы обеспечить постоянную поддержку и обновления. Модуль AzureRM больше не поддерживается и не обновляется. Аргументы команд в модуле Az PowerShell и в модулях AzureRM существенно идентичны. Дополнительные сведения о совместимости см. в статье Знакомство с новым модулем Az PowerShell.
Используйте командлет New-AzSqlDatabaseImport для отправки запроса на импорт базы данных в #REF!. В зависимости от размера базы данных импорт может занять некоторое время. Модель подготовки на основе DTU поддерживает выбор значений максимального размера базы данных для каждого уровня. При импорте базы данных используйте одно из этих поддерживаемых значений.
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
-ServerName "<serverName>" -DatabaseName "<databaseName>" `
-DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
-StorageKey $(Get-AzStorageAccountKey `
-ResourceGroupName "<resourceGroupName>" -StorageAccountName "<storageAccountName>").Value[0] `
-StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
-Edition "Premium" -ServiceObjectiveName "P6" `
-AdministratorLogin "<userId>" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
Чтобы проверить ход выполнения импорта, используйте командлет Get-AzSqlDatabaseImportExportStatus. Если выполнить его немедленно после запроса, то обычно возвращается сообщение . Импорт считается завершенным, когда вы увидите .
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress") {
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write(".")
Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus
Совет
Другой пример скрипта см. в статье "Использование PowerShell для импорта BACPAC-файла в базу данных SQL".
Отмена запроса на импорт
Используйте API управления базой данных - отмены или команду Stop-AzSqlDatabaseActivity PowerShell, как показано в следующем примере:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Разрешения, необходимые для отмены импорта
Чтобы отменить операцию импорта, необходимо быть членом одной из следующих ролей:
- Роль вкладчика базы данных SQL
- Роль настраиваемая #REF! для управления доступом на основе ролей (RBAC) с разрешением
Microsoft.Sql/servers/databases/operations.
Уровень совместимости новой базы данных
Уровень совместимости импортированной базы данных основан на уровне совместимости базы данных-источника.
После импорта базы данных можно использовать базу данных на текущем уровне совместимости или на более высоком уровне. Дополнительные сведения о последствиях и вариантах работы базы данных на определенном уровне совместимости см. в разделе ALTER DATABASE. Сведения о других параметрах уровня базы данных, связанных с уровнями совместимости, см. в разделе ALTER DATABASE SCOPED CONFIGURATION.
Ограничения
- Импорт в базу данных в эластичном пуле не поддерживается через портал #REF!, Azure PowerShell или Azure CLI. Вместо этого создайте базу данных в эластичном пуле и используйте sqlPackage Importили импортируйте данные с помощью любого метода в одну базу данных, а затем переместите базу данных в эластичном пуле.
- Импорт службы экспорта не работает, если параметр "Разрешить доступ к службам #REF!" имеет значение OFF. Однако вы можете обойти проблему, выполнив sqlPackage вручную из виртуальной машины #REF! или выполняя экспорт непосредственно в коде с помощью API DacFx.
- Импорт не поддерживает указание избыточности резервного хранилища при создании новой базы данных, которая создается с использованием избыточности по умолчанию для гео-резервного хранилища. Чтобы обойтись, сначала создайте пустую базу данных с требуемой избыточностью хранилища резервных копий с помощью портала #REF! или PowerShell, а затем импортируйте BACPAC в эту пустую базу данных.
- Хранилище за брандмауэром сейчас не поддерживается.
- Во время импорта не создавайте базу данных с тем же именем. Процесс импорта создает новую базу данных указанного имени.
- В настоящее время служба импорта и экспорта не поддерживает проверку подлинности Microsoft Entra ID при необходимости многофакторной проверки подлинности.
- Службы Import\Export поддерживают только проверку подлинности SQL и Microsoft Entra ID. Импорт\Экспорт несовместим с регистрацией приложения Microsoft Identity.
Дополнительные средства
Вы также можете использовать этих мастеров.
- Мастер импорта приложений уровня данных в SQL Server Management Studio.
- SQL Server мастер импорта и экспорта.