Обзор миграции из SQL Server в Базу данных Azure SQL

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных SQL Azure

Доступные варианты и аспекты миграции баз данных SQL Server в Базу данных SQL Azure.

Миграцию можно применять для баз данных SQL Server, выполняемых локально или в следующих ресурсах.

  • SQL Server на Виртуальных машинах Azure.
  • Amazon Web Services (AWS), эластичное облако вычислений (EC2).
  • Служба реляционной базы данных AWS (RDS).
  • Compute Engine на Google Cloud Platform (GCP).
  • Облачный SQL для SQL Server в GCP.

Другие руководства по миграции см. в разделе Перенос базы данных.

Обзор

База данных SQL Azure является рекомендуемым целевым вариантом для рабочих нагрузок SQL Server, которым требуется полностью управляемая платформа как услуга (PaaS). База данных SQL поддерживает большинство функций управления базами данных. Также она обладает встроенными ресурсами высокой доступности, интеллектуальной обработки запросов, масштабируемости и производительности, которые отвечают требованиям приложений разных типов.

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

Одно из ключевых преимуществ миграции в Базу данных SQL — это возможность модернизировать приложения, используя возможности PaaS. Затем можно исключить любые зависимости от технических компонентов, которые присутствуют на уровне экземпляра, включая, например, задания Агента SQL.

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

Обязательно ознакомьтесь с функциями ядра СУБД SQL Server, доступными в Базе данных SQL Azure, чтобы проверить возможность поддержки целевого объекта миграции.

Рекомендации

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

  • Количество серверов и баз данных.
  • Размер баз данных.
  • Допустимый простой бизнеса в процессе миграции

В вариантах миграции, рассмотренных в этом руководстве, учтены перечисленные факторы. Длительность миграции логических данных в Базу данных SQL Azure может зависеть как от количества объектов в базе данных, так и от размера базы данных.

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

Выбор подходящего целевого объекта

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

Модели развертывания: следует проанализировать рабочую нагрузку приложения и закономерности использования, чтобы выбрать отдельную базу данных или пул эластичных баз данных.

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

Модели приобретения: доступные варианты — это виртуальное ядро, единица транзакций базы данных (DTU) и бессерверные модели приобретения.

  • Модель виртуальное ядро дает возможность выбрать количество виртуальных ядер для Базы данных SQL Azure. Это простейший вариант при переводе из локального SQL Server. Это единственный вариант, который поддерживает экономию затрат на лицензии и Преимущество гибридного использования Azure.
  • Модель DTU абстрагирует базовые ресурсы вычислений, памяти и ввода/вывода, формируя смешанную DTU.
  • Бессерверная модель предназначена для рабочих нагрузок, в которых необходимо автоматическое масштабирование по запросу с выставлением счетов на оплату вычислительных ресурсов за секунду использования. Уровень бессерверных вычислений автоматически ставит базы данных на паузу в неактивные периоды (когда выставляются счета только за хранение). Работа баз данных автоматически возобновляется, когда восстанавливается активность.

Уровни служб: выбирается один из трех уровней служб, предназначенных для разных типов приложений.

  • Уровень общего назначения/"Стандартный" — это сбалансированный бюджетный вариант с ресурсами вычисления и хранения, подходящими для поддержки работы приложений на среднем и низких уровнях. Избыточность встроена на уровне хранилища для обеспечения восстановления после сбоев. Этот вариант рассчитан на большинство рабочих нагрузок баз данных.
  • Уровень служб, критически важных для бизнеса/"Премиальный" предназначен для высокоуровневых приложений, которым требуются высокая скорость транзакций, ввод/вывод с низкой задержкой и высокий уровень устойчивости. Вторичные реплики доступны для отработки отказов и разгрузки рабочих нагрузок считывания.
  • Уровень служб "Гипермасштабирование" предназначен для баз данных с растущими объемами данных и необходимостью автоматического масштабирования до 100 ТБ. Он предназначен для очень больших баз данных.

Важно!

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

Вариант с использованием виртуальной машины SQL Server

Учитывая требования бизнеса, SQL Server на виртуальных машинах Azure может оказаться более подходящим целевым объектом, чем База данных SQL Azure.

Если бизнес отвечает одному из следующих условий, рассмотрите возможность перехода на SQL Server на виртуальной машине (VM).

  • Необходим прямой доступ к ОС или файловой системе, например, для установки сторонних или настраиваемых агентов на одной виртуальной машине с SQL Server.
  • Имеется строгая зависимость от функций, которые пока еще не поддерживаются, например FileStream/FileTable, PolyBase, транзакции между несколькими экземплярами.
  • Необходимо использовать определенную версию SQL Server (например, 2012).
  • Требования к вычислениям намного ниже того, что предлагается управляемым экземпляром (например, одно виртуальное ядро), а консолидация базы данных неприемлема.

Средства миграцииСредства миграции

Мы рекомендуем использовать следующие средства миграции.

Технология Описание
Миграция Azure Эта служба Azure помогает выявить и оценить пространство данных SQL в большом масштабе на VMware. Она выдает рекомендации по развертыванию Azure SQL, определению целевых размеров и примерных ежемесячных затрат.
Помощник по миграции данных Этот инструмент рабочего стола Майкрософт обеспечивает бесшовную оценку миграций SQL Server и отдельных баз данных в Базу данных SQL Azure (для схем и для данных).

Этот инструмент можно установить на локальный сервер или на локальный компьютер, который имеет возможность подключения к базам данных-источникам. Процесс миграции — это логическое перемещение данных между объектами в исходной и целевой базах данных.
Azure Database Migration Service Эта служба Azure поддерживает миграцию баз данных SQL Server в Базу данных SQL Azure через портал Azure или автоматически, через PowerShell. Database Migration Service требует, чтобы пользователь выбрал предпочтительную виртуальную сеть Azure во время подготовки, чтобы обеспечить возможность подключения к базам данных — источникам SQL Server. Можно выполнять миграцию отдельных баз данных или в большом масштабе.

В следующей таблице перечислены альтернативные инструменты миграции.

Технология Описание
Репликация транзакций Репликация данных из таблиц базы данных — источника SQL Server в Базу данных SQL Azure с предоставлением варианта миграции типа "издатель — подписчик" и сохранением согласованности транзакций. Добавочные изменения данных распространяются на подписчиков по мере их возникновения на издателях.
Служба импорта и экспорта/BACPAC BACPAC — это файл Windows с расширением .bacpac, который инкапсулирует схему базы данных и данные. BACPAC можно использовать для экспорта данных из SQL Server-источника и импорта в Базу данных SQL Azure. Файл BACPAC можно импортировать в новую базу данных SQL через портал Azure.

В целях масштабирования и эффективности при работе с базами данных большого размера или с большим количеством баз данных можно использовать инструмент командной строки SqlPackage для экспорта и импорта баз данных.
Массовое копирование Инструмент программы массового копирования (bcp) копирует данные из экземпляра SQL Server в файл данных. Используйте этот инструмент для экспорта данных из источника и импорта файла данных в целевую базу данных SQL.

Для высокоскоростных операций копирования данных с целью перемещения в Базу данных SQL Azure можно использовать инструмент Интеллектуального массового копирования, чтобы максимизировать скорость передачи, используя преимущества параллельных задач копирования.
Фабрика данных Azure. Действие копирования в Фабрике данных Azure переносит данные из баз данных — источников SQL Server в Базу данных SQL Azure с помощью встроенных соединителей и среды выполнения интеграции.

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

Сравнение вариантов миграции

Сравните варианты миграции, чтобы выбрать путь, соответствующий потребностям бизнеса.

В следующей таблице дано сравнение рекомендуемых вариантов миграции.

Вариант миграции Назначение Рекомендации
Помощник по миграции данных — Перенос отдельных баз данных (как схемы, так и данных).
— Допускается время простоя в процессе переноса данных.

Поддерживаемые источники
– SQL Server (2005–2019), локальная или виртуальная машина Azure
— AWS EC2
– AWS RDS
— Виртуальная машина GCP Compute SQL Server
— Действие миграции выполняет перемещение данных между объектами баз данных (от источника к целевому объекту), поэтому рекомендуется запускать его не в часы пиковой нагрузки.
— Помощник по миграции данных сообщает о состоянии миграции на каждом объекте базы данных, включая количество перенесенных строк.
— Для больших (по количеству баз данных или размерам базы данных) миграций следует использовать Azure Database Migration Service.
Azure Database Migration Service — Миграция отдельных баз данных или в большом масштабе.
— Допускается время простоя в процессе переноса.

Поддерживаемые источники
– SQL Server (2005–2019), локальная или виртуальная машина Azure
— AWS EC2
– AWS RDS
– Виртуальная машина GCP Compute SQL Server
— Миграция в большом масштабе может быть автоматизирована посредством PowerShell.
— Длительность миграции зависит от размера базы данных и количества объектов в базе данных.
— Требуется, чтобы база данных-источник была настроена на доступ только для чтения.

В следующей таблице сопоставлены альтернативные варианты миграции.

Метод или технология Назначение Рекомендации
Репликация транзакций — Миграция путем непрерывной публикации изменений из таблиц базы данных-источника в таблицы целевой Базы данных SQL.
— Полные или частичные миграции баз данных выбранных таблиц (подмножества базы данных).

Поддерживаемые источники
- SQL Server (2016–2019) с некоторыми ограничениями
— AWS EC2
– Виртуальная машина GCP Compute SQL Server
– Настройка сложнее по сравнению с другими вариантами миграции.
– Дает возможность непрерывной репликации для переноса данных (без перевода баз данных в автономный режим).
– Репликация транзакций имеет ограничения, которые следует учитывать при настройке издателя в экземпляре-источнике SQL Server. Дополнительные сведения см. в разделе Ограничения на публикацию объектов.
— Возможно отслеживание действий репликации.
Служба импорта и экспорта/BACPAC — Перенос индивидуальных баз данных бизнес-приложений.
— Подходит для небольших баз данных.
— Не требуется отдельная служба или инструмент миграции.

Поддерживаемые источники
– SQL Server (2005–2019), локальная или виртуальная машина Azure
— AWS EC2
– AWS RDS
– Виртуальная машина GCP Compute SQL Server
– Требуется простой, поскольку данные необходимо экспортировать из источника и импортировать в место назначения.
– Форматы файлов и типы данных, используемые в экспорте или импорте, должны быть согласованы со схемами таблиц, чтобы избежать ошибок усечения и несоответствия типов данных.
— Время, затрачиваемое на экспорт базы данных с большим количеством объектов, может быть значительно дольше.
Массовое копирование – Выполняется полная или частичная миграция данных.
– Допускается простой.

Поддерживаемые источники
– SQL Server (2005–2019), локальная или виртуальная машина Azure
– AWS EC2
– AWS RDS
– Виртуальная машина GCP Compute SQL Server
– Требуется простой, необходимый для экспорта данных из источника и импорта в место назначения.
— Форматы файлов и типы данных, используемые в экспорте или импорте, должны быть согласованы со схемами таблиц.
Фабрика данных Azure. — Миграция и (или) преобразование данных из баз данных — источников SQL Server.
— Как правило объединение данных из нескольких источников в Базе данных SQL Azure выполняется для рабочих нагрузок бизнес-аналитики (BI).
— Для перемещения данных из источника в место назначения требуется создавать конвейеры перемещения данных в Фабрике данных.
- Затраты — важный аспект, в основе которого лежат такие факторы, как триггеры конвейеров, выполнение действий и длительность перемещения данных.
Синхронизация данных SQL — Синхронизация данных между исходной и целевой базами данных.
— Подходит для непрерывной синхронизации между Базой данных SQL Azure и локальным SQL Server в двунаправленном потоке.
— База данных SQL Azure должна быть центральной базой данных для синхронизации, а локальная база данных SQL Server должна быть рядовой базой данных.
— В сравнении с репликацией транзакций синхронизация данных SQL поддерживает двунаправленную синхронизацию данных между локальной базой данных и Базой данных SQL Azure.
— В зависимости от рабочей нагрузки влияние на производительность может быть более весомым.

Взаимодействие функций

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

SQL Server Integration Services

Перенос пакетов SQL Server Integration Services (SSIS) в Azure следует осуществлять путем повторного развертывания в среде выполнения Azure-SSIS в Фабрике данных Azure. Фабрика данных Azure поддерживает миграцию пакетов служб SSIS, предоставляя среду выполнения, созданную для обработки пакетов служб SSIS в Azure. В качестве альтернативы можно повторно задать логику ETL SSIS (извлечение, преобразование, загрузка) в Фабрике данных Azure, используя потоки данных.

SQL Server Reporting Services

Отчеты SQL Server Reporting Services (SSRS) можно переносить в отчеты с разбивкой на страницы в Power BI. Для подготовки и переноса отчетов следует использовать  средство переноса RDL. Корпорация Майкрософт разработала его, чтобы помочь клиентам переносить отчеты на языке определения отчетов с серверов SSRS в Power BI. Оно доступно на сайте GitHub, и в нем представлено полное пошаговое руководство по сценарию переноса.

Высокий уровень доступности

Ручные настройки функций высокого уровня доступности SQL Server, таких как экземпляры отказоустойчивого кластера Always On и группы доступности Always On, устаревают в целевой базе данных SQL. Архитектура высокого уровня доступности уже встроена в уровни служб общего назначения (модель доступности уровня "Стандартный") и с критической важностью для бизнеса (модель доступности уровня "Премиум") для Базы данных SQL Azure. Уровень служб "Критически важный для бизнеса"/"Премиум" также обеспечивает горизонтальное масштабирование для чтения, которое дает возможность подключаться к одному из вторичных узлов только для чтения.

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

Имена для входа и группы

Имена входа Windows не поддерживаются в Базе данных SQL Azure. Вместо этого создайте имя входа Azure Active Directory. Вручную повторно создайте все имена для входа SQL.

Задания Агента SQL

Задания Агента SQL не поддерживаются в Базе данных SQL Azure напрямую; их требуется развертывать в заданиях эластичной базы данных (предварительной версии).

Системные базы данных

Для Базы данных SQL Azure единственные применимые системные базы данных — это master и tempdb. Дополнительные сведения см. в разделе Tempdb в Базе данных SQL Azure.

Дополнительные функции

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

Для усиления безопасности рекомендуется использовать  проверку подлинности Azure AD, аудит,  обнаружение угроз,  безопасность на уровне строк и  динамическое маскирование данных.

В дополнение к расширенным функциям управления и безопасности База данных SQL предоставляет инструменты для мониторинга и настройки рабочей нагрузки. Аналитика SQL Azure (предварительная версия) — это расширенное решение для мониторинга производительности всех баз в Базе данных SQL Azure, в большом масштабе, и единого обзора подписок. Аналитика SQL Azure собирает и отображает важные метрики производительности благодаря встроенным средствам аналитики, которые помогают устранять неполадки.

Автоматическая настройка  непрерывно отслеживает производительность плана выполнения SQL и автоматически устраняет выявленные проблемы производительности.

Ресурсы, посвященные миграции

Дополнительная информация доступна в указанных ниже ресурсах, разработанных для реальных проектов миграции.

Ресурс Описание
Модель и средство оценки рабочей нагрузки данных Это средство предоставляет предлагаемые "оптимальные" целевые платформы, готовность к переходу в облако и уровень исправления приложения/базы данных для рабочей нагрузки. Оно обеспечивает простые и быстрые вычисления и создание отчетов, помогая ускорить оценку больших объемов, предоставляя, автоматизируя и унифицируя процесс принятия решений для целевых платформ.
Массовое создание баз данных с использованием PowerShell Можно использовать набор из трех сценариев PowerShell, которые создают группу ресурсов (create_rg.ps1), логический сервер в Azure (create_sqlserver.ps1) и базу данных SQL (create_sqldb.ps1). Сценарии включают функции циклов, что дает возможность выполнять итерацию и создавать столько серверов и баз данных, сколько необходимо.
Развертывание массовой схемы с использованием MSSQL-Scripter и PowerShell Этот ресурс создает группу ресурсов, один или несколько логических серверов в Azure для размещения Базы данных SQL Azure, экспортирует каждую схему из локального экземпляра SQL Server (или нескольких экземпляров SQL Server 2005 +) и импортирует схемы в Базу данных SQL Azure.
Преобразование заданий Агента SQL Server в задания эластичных баз данных Этот сценарий переносит задания из Агента SQL Server-источника в эластичную базу данных.
Служебная программа перемещения данных для входа локального сервера SQL Server в Базу данных SQL Azure Сценарий PowerShell может сформировать сценарий команды T-SQL для повторного создания имен для входа и выбора пользователей базы данных из локального SQL Server для Базы данных Azure SQL. Этот инструмент дает возможность автоматически сопоставлять учетные записи Windows Server Active Directory с учетными записями Azure AD, а также при необходимости выполнять миграцию собственных имен для входа SQL Server.
Автоматизация сбора данных системного монитора с применением инструмента Logman Инструмент Logman можно использовать для сбора данных системного монитора (с целью понимания базовых показателей производительности) и получения рекомендаций относительно целевого объекта миграции. Этот инструмент использует logman.exe для создания команды, которая будет создавать, запускать, останавливать и удалять счетчики производительности, заданные на удаленном экземпляре SQL Server.

Эти ресурсы разработали специалисты по разработке данных SQL. Основная задача этой команды — включить и ускорить комплексную модернизацию проектов миграции платформы данных на платформу данных Microsoft Azure.

Дальнейшие действия