Поделиться через


Импорт или экспорт базы данных SQL Azure с помощью приватного канала

Применимо к: База данных SQL Azure

В этой статье объясняется, как импортировать или экспортировать базу данных SQL Azure с помощью приватного канала с помощью портала Azure или Azure PowerShell. Установите для параметра "Разрешить доступ к службам Azure " значение "Отключить " на логическом сервере SQL Azure.

С помощью Private Link можно безопасно выполнять операции импорта и экспорта без необходимости устанавливать "Разрешить доступ к службам Azure" в положение "включено", что в противном случае требуется для стандартных операций импорта и экспорта.

Примечание.

Импорт и экспорт с помощью приватного канала для базы данных SQL Azure в настоящее время находится в предварительной версии.

Предпосылки

Перед импортом и экспортом с приватным каналом убедитесь, что у вас есть следующие ресурсы и конфигурации:

  • Логический сервер SQL Azure с подключением к частной конечной точке, настроенным для виртуальной сети
  • Учетная запись хранения Azure с контейнером блобов, который содержит ваш BACPAC-файл (для импорта) или хранит экспортированный BACPAC-файл.
  • Логический сервер SQL Azure и учетная запись хранения должны иметь частные конечные точки, настроенные в одной или одноранговых виртуальных сетях.
  • Соответствующие разрешения для утверждения подключений к частной конечной точке на логическом сервере SQL Azure и учетной записи хранения

Приватный канал импорта и экспорта базы данных — это управляемая службами частная конечная точка, созданная корпорацией Майкрософт. Если включить параметр приватного канала во время импорта или экспорта, служба автоматически создает частные конечные точки для обеспечения безопасного взаимодействия между процессом импорта и экспорта базы данных, базой данных SQL Azure и службой хранилища Azure.

Эти частные конечные точки, управляемые службой, создаются в одной виртуальной сети и подсети, где находится существующая частная конечная точка логического сервера SQL Azure. Конечные точки получают частные IP-адреса из адресного пространства этой подсети и должны быть вручную утверждены перед продолжением операции импорта и экспорта.

Это важно

Если на логическом сервере Azure SQL или учетной записи хранилища уже настроены частные конечные точки, служба импорта и экспорта создает дополнительные частные конечные точки, управляемые службой, специально для операций импорта/экспорта. Эти частные конечные точки отделены от существующих частных конечных точек и требуют отдельного утверждения.

Необходимо вручную утвердить частную конечную точку как для логического сервера SQL в Azure, так и для учетной записи хранения Blob в Azure, по отдельности на каждом шаге. В этом руководстве содержатся детали.

Схема архитектуры приватного канала импорта.

Вы можете настроить приватный канал импорта и экспорта через портал Azure, PowerShell или REST API.

Примечание.

Служба автоматически создает частные конечные точки в той же виртуальной сети и подсети, что и существующую частную конечную точку логического сервера SQL Azure. Вам не нужно вручную указывать виртуальную сеть или подсеть во время процесса импорта и экспорта. Если на сервере SQL Server не настроена частная конечная точка, необходимо настроить ее перед использованием импорта и экспорта с приватным каналом.

Необходимо включить и утвердить приватный канал импорта. Azure автоматически создает приватную ссылку.

  1. Перейдите на страницу обзора логического сервера SQL Azure, где необходимо импортировать базу данных. Выберите "Импорт базы данных " на панели инструментов.

  2. На странице "Импорт базы данных" установите флажок "Использовать приватный канал".

  3. Введите учетную запись хранения, учетные данные проверки подлинности, сведения о базе данных и нажмите кнопку "ОК".

Необходимо включить и утвердить приватный канал экспорта. Azure автоматически создает приватную ссылку.

  1. Перейдите на страницу обзора базы данных SQL Azure, которую вы хотите экспортировать. Выберите " Экспорт" на панели инструментов.
  2. На странице "Экспорт базы данных" установите флажок "Использовать приватный канал".
  3. Введите учетную запись хранения, учетные данные проверки подлинности, сведения о базе данных и нажмите кнопку "ОК".

Пользователь должен утвердить новую частную конечную точку в Центре приватного канала или в базе данных SQL Azure. Вы можете одобрить обе частные ссылки по отдельности в соответствующих разделах портала Azure.

Подсказка

Если у вас уже есть частные конечные точки, настроенные для логического сервера SQL Azure и учетной записи хранения, вы увидите, что новые частные конечные точки, управляемые службой, отображаются как ожидающие подключения. Эти частные конечные точки предназначены специально для операции импорта и экспорта и отделены от существующих частных конечных точек. Найдите частные конечные точки с именами, указывающими, что они были созданы службой импорта и экспорта.

  1. Перейдите в Центр Private Link на портале Azure. В поле поиска Azure введите Private Link. Выберите Private Link.

  2. В Центре приватного канала выберите Ожидающие подключения.

  3. Выберите обе частные конечные точки, созданные с помощью службы импорта и экспорта. Выбрать Утвердить.

    Снимок экрана из Центра частных ссылок портала Azure, показывающий, как одобрить обе частные ссылки.

Вариант 2. Утверждение подключений к частной конечной точке отдельно на портале Azure

  1. Перейдите на логический сервер SQL Azure, на котором размещена база данных.

  2. В меню ресурсов в разделе Безопасностьвыберите Сетевые.

  3. Выберите вкладку "Закрытый доступ ".

  4. В списке в разделе "Подключения к частной конечной точке" выберите частные конечные точки, созданные с помощью службы импорта и экспорта.

  5. Выбрать Утвердить.

    Снимок экрана: портал Azure, в котором показано, как утвердить База данных SQL Azure Приватный канал.

  6. Перейдите к учетной записи хранения, в которой размещен контейнер BLOB-объектов, в котором существует BACPAC-файл.bacpac.

  7. В разделе Security + Networkingвыберите Сеть.

  8. Перейдите на вкладку подключения к частным конечным точкам.

  9. В списке выберите частную конечную точку для службы импорта и экспорта.

  10. Выберите " Утвердить", чтобы утвердить подключение.

    Снимок экрана: портал Azure, в котором показано, как утвердить служба хранилища Azure Приватный канал в служба хранилища Azure.

3. Проверка состояния импорта и экспорта

  1. После утверждения частных конечных точек на сервере SQL Azure и учетной записи хранения Azure начинается задание импорта или экспорта базы данных. До тех пор задания приостановлены.

  2. Вы можете проверить состояние заданий импорта или экспорта базы данных на странице журнала импорта и экспорта в разделе Управление данными на странице sql Server Azure.

    Снимок экрана: портал Azure, в котором показано, как проверить состояние импорта заданий экспорта.

При использовании PowerShell частные конечные точки, управляемые службой, автоматически создаются в той же виртуальной сети и подсети, что и существующую частную конечную точку логического сервера SQL Azure. Перед выполнением этих команд убедитесь, что в SQL Server настроено подключение к частной конечной точке.

Используйте командлет New-AzSqlDatabaseImport, чтобы отправить запрос на импорт базы данных в Azure. В зависимости от размера базы данных импорт может занять некоторое время. Модель подготовки на основе DTU поддерживает выбор значений максимального размера базы данных для каждого уровня. При импорте базы данных необходимо использовать поддерживаемые значения редакции и целевых показателей для базы данных SQL Azure.

Укажите собственный <values> в следующем примере кода PowerShell, который импортирует bacpac-файл с именем sample.bacpac и создает базу данных SQL Azure с двумя виртуальными ядрами общего назначения.

$importRequestParams = @{
   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                                = "GeneralPurpose"
   ServiceObjectiveName                   = "GP_Gen5_2"
   UseNetworkIsolation                    = $true
   StorageAccountResourceIdForPrivateLink = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>"
   SqlServerResourceIdForPrivateLink      = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>"
   AdministratorLogin                     = "<userID>"
   AdministratorLoginPassword             = $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
}

$importRequest = New-AzSqlDatabaseImport @importRequestParams

Используйте командлет New-AzRmSqlDatabaseExport, чтобы отправить запрос на экспорт базы данных в службу «База данных SQL Azure». В зависимости от размера базы данных операция экспорта может занять некоторое время.

Вставьте собственное значение <values> в следующем примере кода PowerShell.

$exportRequestParams = @{
   ResourceGroupName                      = "<resourceGroupName>"
   ServerName                             = "<serverName>"
   DatabaseName                           = "<databaseName>"
   StorageKeyType                         = "StorageAccessKey"
   StorageKey                             = $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -StorageAccountName "<storageAccountName>").Value[0]
   StorageUri                             = "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac"
   UseNetworkIsolation                    = $true
   StorageAccountResourceIdForPrivateLink = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>"
   SqlServerResourceIdForPrivateLink      = "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>"
   AdministratorLogin                     = "<userID>"
   AdministratorLoginPassword             = $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
}

$exportRequest = New-AzSqlDatabaseExport @exportRequestParams

Существующие API для выполнения заданий импорта и экспорта поддерживают приватный канал. Ознакомьтесь с API импорта базы данных.

Ограничения

В настоящее время приватный канал для импорта и экспорта имеет следующие ограничения:

  • Чтобы использовать приватный канал с импортом и экспортом, пользовательская база данных и контейнер BLOB-объектов хранилища Azure должны находиться в том же типе облака Azure. Например, оба должны находиться в Azure Commercial или оба в Azure Gov. Размещение в разных типах облаков не поддерживается.

  • Импорт или экспорт базы данных из Управляемого экземпляра SQL Azure с помощью PowerShell в настоящее время не поддерживается.

  • Не используйте приватный канал импорта и экспорта, если пользовательская база данных или учетная запись хранения Azure защищены блокировками ресурсов.

  • Чтобы завершить операцию экспорта, необходимо вручную утвердить новое подключение к частной конечной точке. После запуска экспорта перейдите к ожидающим подключениям в Центре приватных подключений и одобрите подключения, которые могут занять несколько минут для появления.

  • Импорт с помощью Частного соединения не поддерживает указание избыточности хранилища резервных копий при создании новой базы данных и создает базу данных с настройкой избыточности хранилища резервных копий по умолчанию. В качестве обходного решения сначала создайте пустую базу данных с требуемой избыточностью хранилища резервных копий с помощью портала Azure или PowerShell, а затем импортируйте BACPAC-файл в эту пустую базу данных.

  • Импорт с помощью REST API с приватным каналом можно выполнить только для существующей базы данных, так как API использует расширения базы данных. В качестве обходного решения создайте пустую базу данных с нужным именем, а затем вызовите REST API импорта с приватным каналом.