Миграция базы данных с сервера Microsoft SQL Server on-premises в Azure SQL database
Введение
В данном руководстве описан процесс миграции базы данных с сервера Microsoft SQL Server on-premises в Azure SQL database посредством экспорта Data-tier Application и последующего импорта базы Azure SQL database из bacpac-файла.
Перед началом процесса миграции следует обеспечить выполнение следующих условий:
- Логин на сервере on-premises, с которого нужно перенести базу (под которым предполагается выполнять этот перенос) должен входить в роль сервера sysadmin.
- Должны быть созданы учётная запись и подписка в Azure.
Сам процесс миграции состоит из следующих шагов:
- Создание storage account и блоб-контейнера в нём в Azure.
- Экспорт bacpac-файла базы данных с сервера Microsoft SQL Server on-premises в блоб-контейнер.
- Создание инстанса SQL Server в Azure.
Импорт базы данных из bacpac-файла, сохраненного в блоб-контейнере в инстанс SQL Server в Azure
Создание storage account и блоб-контейнера в нём в Azure
- Открываем в браузере portal.azure.com и после входа в свою учётную запись на домашней странице нажимаем “Create a resource”.
- На открывшейся странице нажимаем “Storage account”.
- На открывшейся странице “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.
Оставляем значение по умолчанию.
- Нажимаем “Review + create” и после валидации всех настроек ещё раз “Create”. Создание storage account может занять несколько минут.
- После завершения создания нажимаем“Go to resource”.
- В левой части страницы созданного storage account нажимаем “Containers”.
- На открывшейся странице нажимаем “+ Container”.
- Указываем желаемое имя контейнера, остальные настройки оставляем по умолчанию.
9. Нажимаем “Create” - контейнер будет создан и отображён на странице аккаунта.
На этом процесс создания storage account и настройки контейнера можно считать завершенным.
Экспорт bacpac-файла базы данных с сервера Microsoft SQL Server on-premises в блоб-контейнер
- Открываем SSMS и подключаемся к on-premises SQL Server, на котором находится база для переноса.
- Нажимаем на базу правой кнопкой мыши и в появившемся контекстном меню выбираем Tasks -> Export Data-tier.
- В появившемся окне Introduction нажимаем “Next”.
- На вкладке Export Settings выбираем “Save to Microsoft Azure” и нажимаем кнопку “Connect...” для подключения к storage account.
- В появившейся форме для аутентификации в Azure вводим данные своей учётной записи.
- После аутентификации в появившемся окне выбираем подписку, storage account и блоб контейнер, куда будет сохранён bacpac-файл и нажимаем “ОК”.
7. Убеждаемся, что в окне Export Settings указаны правильные значения и нажимаем Next, а затем Finish.
8. Процесс экспорта отображается в окне “Progress”.
9. После завершения экспорта закрываем окно. Можно открыть контейнер на портале Azure и убедиться, что bacpac-файл был успешно
скопирован.
На этом экспорт bacpac-файла в блоб контейнер можно считать завершённым.
Создание инстанса SQL Server в Azure
- Открываем в браузере portal.azure.com, переходим на домашнюю страницу и нажимаем “Create a resource”.
- В строке поиска набираем “SQL Server” и нажимаем ввод.
- В результатах поиска находим ресурс “Azure SQL” и нажимаем на него.
- На открывшейся странице нажимаем “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