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

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

В этой статье показано, как импортировать или экспортировать База данных SQL Azure, если разрешить службам и ресурсам Azure доступ к этому серверу установлено значение OFF. В этой статье используется виртуальная машина Azure для запуска SqlPackage для выполнения операции импорта или экспорта.

Разрешить службам и ресурсам Azure доступ к этому параметру сервера отображается в портал Azure в меню "Безопасность" в меню "Ресурсы" в разделе "Исключения". Дополнительные сведения об этом параметре см. в разделе База данных SQL Azure управления доступом к сети.

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

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

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

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

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

Изображение с кнопкой

Дополнительные сведения, включая шаблон быстрого запуска Azure, см. в статье "Развертывание простой виртуальной машины Windows".

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

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

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

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

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

    Снимок экрана: портал Azure, подключение к виртуальной машине с выделенным параметром RDP.

    Примечание.

    Существует несколько способов подключения к виртуальной машине. В этом руководстве используется протокол удаленного рабочего стола (RDP) для подключения к виртуальной машине, но новое решение для использования Бастиона Azure является альтернативой, которая будет работать хорошо, если вы развернули Бастион в вашей среде. Вы также можете использовать SSH для подключения к виртуальной машине.

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

  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 выберите имя своей базы данных. Откроется страница обзора базы данных с полным именем сервера (например: sql-svr.database.windows.net) и предоставляет параметры дальнейшей настройки.

    Снимок экрана: страница обзора базы данных портал Azure с выделенным именем сервера.

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

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

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

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

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

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

Дополнительные сведения и шаги по созданию BACPAC-файла см. в разделе "Экспорт в BACPAC-файл".

Мы рекомендуем использовать служебную программу 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 и виртуальные сети.