Миграция базы данных с сервера Microsoft SQL Server on-premises в Azure SQL database

Tags: миграция данных, Azure, Microsoft, Azure SQL database

Введение

В данном руководстве описан процесс миграции базы данных с сервера Microsoft SQL Server on-premises в Azure SQL database посредством экспорта Data-tier Application и последующего импорта базы Azure SQL database из bacpac-файла.

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

  • Логин на сервере on-premises, с которого нужно перенести базу (под которым предполагается выполнять этот перенос) должен входить в роль сервера sysadmin.
  • Должны быть созданы учётная запись и подписка в Azure.

 Сам процесс миграции состоит из следующих шагов:

  1. Создание storage account и блоб-контейнера в нём в Azure.
  2. Экспорт bacpac-файла базы данных с сервера Microsoft SQL Server on-premises в блоб-контейнер.
  3. Создание инстанса SQL Server в Azure.

Импорт базы данных из bacpac-файла, сохраненного в блоб-контейнере в инстанс SQL Server в Azure

Создание storage account и блоб-контейнера в нём в Azure

  1. Открываем в браузере portal.azure.com и после входа в свою учётную запись на домашней странице нажимаем “Create a resource”.
  2. На открывшейся странице нажимаем “Storage account”.
  3. На открывшейся странице “Create a storage account” указываем следующие значения:

    Поле

    Значение

    Subscription

    Подписка, в которой создаётся storage account.

    Resource group

    Существующая или новая группа в зависимости от предпочтений.

    Storage account name

    Имя создаваемого storage аккаунта. Должно быть уникальным среди всех storage аккаунтов в Azure, от 3 до 24 символов, только строчные буквы и цифры. На скриншоте ниже - frdsstorageacc.

    Region

    Регион в котором будет создан storage account. Рекомендуется использовать тот же регион, в котором будет создан Azure SQL server.

    Performance

    Standard или Premium (что по сути означает HDD или SSD для создаваемого storage account) в зависимости от потребностей и бюджета. На скриншоте выбрано значение по умолчанию Standard.

    Redundancy

    Куда будет реплицироваться storage account, для обеспечения high availability. Выбирается опция в зависимости от потребностей и бюджета. На скриншоте выбрано значение по умолчанию Geo-redundant storage (GRS).

    Make read access to data available in the event of regional unavailability.

    Оставляем значение по умолчанию.

  4. Нажимаем “Review + create” и после валидации всех настроек ещё раз “Create”. Создание storage account может занять несколько минут.
  5. После завершения создания нажимаем“Go to resource”.
  6. В левой части страницы созданного storage account нажимаем “Containers”.
  7. На открывшейся странице нажимаем “+ Container”.
  8. Указываем желаемое имя контейнера, остальные настройки оставляем по умолчанию.

     9. Нажимаем “Create” - контейнер будет создан и отображён на странице аккаунта.

На этом процесс создания storage account и настройки контейнера можно считать завершенным.

Экспорт bacpac-файла базы данных с сервера Microsoft SQL Server on-premises в блоб-контейнер

  1. Открываем SSMS и подключаемся к on-premises SQL Server, на котором находится база для переноса.
  2. Нажимаем на базу правой кнопкой мыши и в появившемся контекстном меню выбираем Tasks -> Export Data-tier.
  3. В появившемся окне Introduction нажимаем “Next”.
  4. На вкладке Export Settings выбираем “Save to Microsoft Azure” и нажимаем кнопку “Connect...” для подключения к storage account.
  5. В появившейся форме для аутентификации в Azure вводим данные своей учётной записи.
  6. После аутентификации в появившемся окне выбираем подписку, storage account и блоб контейнер, куда будет сохранён bacpac-файл и нажимаем “ОК”. 

     7. Убеждаемся, что в окне Export Settings указаны правильные значения и нажимаем Next, а затем Finish.

     8. Процесс экспорта отображается в окне “Progress”.

    9. После завершения экспорта закрываем окно. Можно открыть контейнер на портале Azure и убедиться, что bacpac-файл был успешно 

скопирован.

 

   

На этом экспорт bacpac-файла в блоб контейнер можно считать завершённым.

Создание инстанса SQL Server в Azure

  1. Открываем в браузере portal.azure.com, переходим на домашнюю страницу и нажимаем “Create a resource”.   
  2. В строке поиска набираем “SQL Server” и нажимаем ввод.  
  3. В результатах поиска находим ресурс “Azure SQL” и нажимаем на него.    
  4. На открывшейся странице нажимаем “Create”.     

      5. На открывшейся странице в разделе “How do you plan to use the service?” доступно три опции - “SQL databases”, “SQL managed instances” и “SQL virtual machines”. В данном руководстве рассмотрен процесс создания SQL databases. Нажав на “Show details” на панели “SQL databases”, можно увидеть описание различных типов ресурсов для этой опции - “Single database”, “Elastic pool” и “Database server”. Выбор типа ресурса зависит от потребностей, для данного примера выбираем “Database server” и нажимаем “Create”.

      6. На открывшейся странице указываем следующие значения

Поле

Значение

Subscription

Подписка, в которой создаётся сервер.

Resource group

Существующая или новая группа в зависимости от предпочтений.

Server name

Имя создаваемого сервера. Должно быть уникальным среди всех серверов в Azure, не должно быть зарезервированным словом. Должно содержать только строчные буквы, цифры и “-”, но не может начинаться с “-”. Длина - не более 63 символов. На скриншоте ниже - forrardssql.

Region

Регион в котором будет создан сервер.

Server admin login

Логин для админа.

Password

Пароль для админского логина.

Confirm password

Ещё раз пароль.

    7. Нажимаем “Review + create”, а затем ещё раз “Create”. Создание сервера может занять несколько минут.

На этом создание инстанса SQL Server в Azure можно считать завершённым.

Импорт базы данных из bacpac-файла, сохраненного в блоб-контейнере, в инстанс SQL Server в Azure

   1. После завершения создания инстанса SQL Server в Azure, на открывшейся странице нажимаем “Go to resource

   2. На открывшейся странице нажимаем “Import database”.

   3. На открывшейся странице нужно указать параметры импортируемой базы данных. Для выбора bacpac-файла, созданного ранее, нажимаем “Select backup”.

   4. Далее нужно выбрать storage account и блоб-контейнер в нём, куда был экспортирован bacpac-файл, а затем выбрать этот файл и нажать “Select”.

    5. Выбранный файл отобразится в окне настройки параметров импорта. Следующим шагом нужно выбрать ресурсы, используемые базой данных. Для этого нажимаем “Configure database”.

    6. Ресурсы выбираются в зависимости от планируемой нагрузки и бюджета, для данного примера была выбрана минимальная конфигурация. После выбора конфигурации нажимаем “Apply”.

    7. Выбранная конфигурация отобразится в окне настройки параметров импорта.

    8. Последним шагом указываем название базы данных, collation, а также логин и пароль для входа на сервер (те значения, которые были заданы на этапе создания сервера). После указания всех параметров нажимаем “ОК”. Импорт базы данных займёт какое-то время в зависимости от количества данных. Следует иметь в виду, что панель с уведомлениями, отображающая прогресс импорта базы через какое-то время может зависнуть и показывать, что импорт продолжается тогда, когда по факту он уже завершился. Для большей надёжности следует проверять состояние базы, открыв её в “All resources”. 

На этом процесс миграции базы данных с сервера Microsoft SQL Server on-premises в Azure SQL database можно считать завершённым.

Полезные ссылки

Quickstart: Import a BACPAC file to a database in Azure SQL Database or Azure SQL Managed Instance

https://docs.microsoft.com/en-us/azure/azure-sql/database/database-import?tabs=azure-powershell

No Comments

Add a Comment