Импорт или экспорт Базы данных SQL Azure без предоставления службам Azure доступа к серверу

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

В этой статье содержатся сведения о том, как импортировать или экспортировать Базу данных SQL Azure, если для параметра Allow Azure Services (Разрешить службы Azure) на сервере задано значение ВЫКЛ. Рабочий процесс использует виртуальную машину Azure, чтобы запустить SqlPackage для выполнения операции импорта или экспорта.

Войдите на портал Azure

Войдите на портал Azure.

Создание виртуальной машины Azure

Создайте виртуальную машину Azure, нажав кнопку Развертывание в Azure.

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

Image showing a button labeled

Дополнительные сведения см. в статье Очень простое развертывание виртуальной машины Windows.

Подключитесь к виртуальной машине

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

  1. После завершения развертывания перейдите в ресурс виртуальной машины.

    Screenshot shows a virtual machine Overview page with a Connect button.

  2. Нажмите Подключиться.

    Для виртуальной машины отобразится форма файла протокола удаленного рабочего стола (RDP-файл), а также общедоступный IP-адрес и номер порта.

    Screenshot of Azure portal, connect to VM, with download RDP highlighted.

  3. Выберите Скачать RDP-файл.

    Примечание.

    Вы также можете подключаться к виртуальной машине по протоколу SSH.

  4. Закройте форму Connect to virtual machine (Подключение к виртуальной машине).

  5. Чтобы подключиться к виртуальной машине, откройте скачанный RDP-файл.

  6. При появлении запроса выберите Подключиться. На компьютере Mac вам понадобится клиент RDP, например Remote Desktop Client из Mac App Store.

  7. Введите имя пользователя и пароль, указанные при создании виртуальной машины, и нажмите кнопку ОК.

  8. При входе в систему может появиться предупреждение о сертификате. Чтобы продолжить процесс подключения, выберите Да или Продолжить.

Установка SqlPackage

Загрузите и установите последнюю версию SqlPackage.

Дополнительные сведения см. в разделе SqlPackage.

Создание правила брандмауэра, чтобы предоставить виртуальной машине доступ к базе данных

Добавьте общедоступный IP-адрес виртуальной машины в брандмауэр сервера.

Ниже описано, как создать правило брандмауэра для IP-адресов на уровне сервера для общедоступного IP-адреса виртуальной машины и разрешить подключение с виртуальной машины.

  1. В меню слева выберите пункт Базы данных SQL, а затем на странице Базы данных SQL выберите имя своей базы данных. После этого откроется страница обзора базы данных, где будет указано полное имя сервера (например, servername.database.windows.net) и будут предоставлены параметры для дальнейшей настройки.

  2. Скопируйте полное имя сервера, которое понадобится вам для подключения к серверу и связанным базам данных.

    Screenshot of the Azure portal, database overview page, with the server name highlighted.

  3. На панели инструментов щелкните Настройка брандмауэра для сервера. Откроется страница Параметры брандмауэра сервера.

    Screenshot of the Azure portal, showing the firewall page, with server-level IP firewall rule highlighted.

  4. На панели инструментов выберите Добавить IP-адрес клиента, чтобы добавить общедоступный IP-адрес виртуальной машины в новое правило брандмауэра для IP-адресов на уровне сервера. С использованием правила брандмауэра для IP-адресов на уровне сервера вы можете открыть порт 1433 для одного IP-адреса или диапазона IP-адресов.

  5. Выберите Сохранить. Правило брандмауэра для IP-адресов на уровне сервера создается для общедоступного IP-адреса виртуальной машины с помощью которого на сервере открывается порт 1433.

  6. Закройте страницу Параметры брандмауэра.

Экспорт базы данных с помощью SqlPackage

Экспорт Базы данных SQL Azure с помощью программы командной строки SqlPackage описывается в разделах о параметрах и свойствах операции экспорта. Служебная программа SqlPackage поставляется вместе с последними версиями SQL Server Management Studio и SQL Server Data Tools. Кроме того, вы можете загрузить последнюю версию SqlPackage.

Мы рекомендуем использовать служебную программу SqlPackage для масштабирования и обеспечения производительности в большинстве рабочих сред. Сведения о миграции из SQL Server в Базу данных SQL Azure с использованием BACPAC-файлов см. в блоге группы консультирования клиентов SQL Server.

В этом примере показано, как экспортировать базу данных с помощью SqlPackage с универсальной проверкой подлинности Active Directory. Замените значения параметрами, необходимыми для вашей среды.

SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=<servername>.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"

Импорт базы данных с помощью SqlPackage

Импорт базы данных SQL Server с помощью программы командной строки SqlPackage описывается в разделе Параметры и свойства импорта. В состав SqlPackage входят последние версии SQL Server Management Studio и SQL Server Data Tools. Также можно скачать последнюю версию SqlPackage.

Вместо портала Azure рекомендуется использовать SqlPackage для масштабирования и обеспечения производительности в большинстве рабочих сред. Сведения о миграции из SQL Server в Базу данных SQL Azure с помощью файлов BACPAC см. в блоге команды Помощника по Azure для пользователей SQL Server здесь.

Следующая команда SqlPackage импортирует AdventureWorks2022 базу данных из локального хранилища в База данных SQL Azure. Она создает новую базу данных, вызываемую myMigratedDatabase с уровнем служб Premium и целевой задачей службы P6 . Подставьте соответствующие значения для своей среды.

SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=myMigratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2022.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6

Важно!

Чтобы подключиться к серверу Базы данных SQL Azure через корпоративный брандмауэр, следует открыть порт 1433 в этом брандмауэре.

В этом примере показано, как импортировать базу данных с помощью SqlPackage, используя универсальную проверку подлинности Active Directory.

SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"

Замечания, связанные с быстродействием

Скорость экспорта зависит от многих факторов (например, формы представления данных), поэтому предсказать ожидаемую скорость невозможно. Выполнение SqlPackage может занять довольно много времени, особенно для больших баз данных.

Чтобы добиться максимальной производительности, можно воспользоваться следующими стратегиями.

  1. Убедитесь, что другие рабочие нагрузки не используют базу данных. Создание копии перед экспортом может быть лучшим способом для предотвращения выполнения других рабочих нагрузок.
  2. Увеличьте целевой уровень обслуживания (SLO) базы данных, чтобы ускорить обработку рабочей нагрузки экспорта (в первую очередь это применимо к операциям ввода-вывода при чтении). Если базой данных на данный момент является GP_Gen5_4, возможно, улучшить работу рабочей нагрузки чтения поможет уровень "Критически важный для бизнеса".
  3. Убедитесь в наличии кластеризованных индексов, в особенности для больших таблиц.
  4. Чтобы предотвратить ограничения сети, виртуальные машины должны находиться в том же регионе, что и база данных.
  5. Виртуальные машины должны иметь диск SSD, размер которого будет подходящим для создания временных артефактов перед отправкой в хранилище BLOB-объектов.
  6. Виртуальные машины должны иметь соответствующую конфигурацию ядра и памяти для конкретной базы данных.

Сохранение импортированного или экспортированного BACPAC-файла

BACPAC-файл можно хранить в Больших двоичных объектах Azure или Файлах Azure.

Чтобы добиться лучшей производительности, используйте Файлы Azure. SqlPackage работает с файловой системой, поэтому он может иметь непосредственный доступ к Файлам Azure.

Чтобы снизить затраты, используйте Большие двоичные объекты Azure, которые стоят меньше, чем общая папка Azure уровня "Премиум". Однако для копирования потребуется. BACPAC-файл между BLOB-объектом и локальной файловой системой перед операцией импорта или экспорта. Таким образом этот процесс займет больше времени.

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

В зависимости от среды, возможно, вам потребуется настроить брандмауэры службы хранилища Azure и виртуальные сети.

Следующие шаги