Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
В этой статье объясняется процесс подготовки среды для миграции экземпляра SQL Server, включенного с помощью Azure Arc, на SQL Server на виртуальные машины Azure SQL Server на виртуальных машинах Azure в портале Azure.
Замечание
- Миграция на SQL Server на виртуальных машинах Azure через портал Azure в настоящее время находится в стадии предварительной версии.
- Вы можете предоставить отзывы о вашем опыте миграции непосредственно в группу продуктов.
Необходимые условия
Чтобы перенести базы данных SQL Server на SQL Server на виртуальных машинах Azure на портале Azure, необходимо выполнить следующие предварительные требования:
- Активная подписка Azure. Если ее нет, создайте бесплатную учетную запись.
- Экземпляр SQL Server, активированный с помощью Azure Arc, с последней версией расширения Azure для SQL Server. Сведения об обновлении расширения см. в статье об обновлении расширения.
- Вы можете использовать существующий SQL Server на виртуальной машине Azure или подготовить целевую SQL Server виртуальную машину во время процесса миграции. Если вы решили использовать существующую виртуальную машину SQL Server, она должна быть зарегистрирована с расширением агента IaaS SQL.
Поддерживаемые версии SQL Server
Миграция виртуальных машин SQL Server работает с каждой версией SQL Server на Windows и Linux.
В следующей таблице перечислены минимальные поддерживаемые версии SQL Server для миграции:
| версия SQL Server | Минимальное требуемое обновление обслуживания |
|---|---|
| SQL Server 2025 (17.x) | SQL Server 2025 RTM (17.0.1000.7) |
| SQL Server 2022 (16.x) | SQL Server 2022 RTM (16.0.1000.6) |
| SQL Server 2019 (15.x) | SQL Server 2019 RTM (15.0.2000.5) |
| SQL Server 2017 (14.x) | SQL Server 2017 RTM (14.0.1000.169) |
| SQL Server 2016 (13.x) | SQL Server 2016 RTM (13.0.1400.361) |
| SQL Server 2014 (12.x) | SQL Server 2014 RTM (12.0.2000.8) |
| SQL Server 2012 (11.x) | SQL Server 2012 RTM (11.0.2100.60) |
Разрешения
В этом разделе описываются разрешения, необходимые для переноса баз данных SQL Server на SQL Server на виртуальных машинах Azure через портал Azure.
В исходном SQL Server экземпляре требуются следующие разрешения:
- Если включить минимальные привилегии, необходимые разрешения, такие как sysadmin , предоставляются по мере необходимости во время процесса миграции базы данных.
- Если вы не можете использовать минимальные привилегии, вам потребуется sysadmin разрешения для исходного SQL Server экземпляра.
Чтобы выполнить миграцию, вам потребуется роль Virtual Machine Contributor на виртуальной машине Azure.
Создание учетной записи хранения
Учетная запись Azure Blob Storage используется в качестве промежуточного хранилища для файлов резервного копирования между экземпляром SQL Server и SQL Server на виртуальной машине Azure. Учетная запись хранения должна находиться в той же подписке Azure и регионе, что и SQL Server на целевой виртуальной машине Azure.
Чтобы создать новую учетную запись хранения и контейнер BLOB в этой учетной записи:
-
Создайте учетную запись хранения:
- Найдите учетные записи Storage на портале Azure и выберите Create.
- На вкладке "Основные сведения" выберите подписку и группу ресурсов. Регион должен совпадать с SQL Server в целевом объекте виртуальной машины Azure.
- Оставьте предпочтительный тип хранилища пустым.
- Используйте параметры по умолчанию для остальных вкладок и выберите "Просмотр и создание".
- После прохождения проверки выберите Создать.
-
Создайте контейнер BLOB в аккаунте хранения.
- Перейдите к новой учетной записи хранения на портале Azure.
- В разделе Хранилище данных выберите Контейнеры.
- Используйте Добавить контейнер, чтобы открыть панель Новый контейнер.
- Введите имя контейнера, оставьте параметры по умолчанию и нажмите кнопку "Создать ", чтобы создать контейнер.
- (Необязательно) Если Azure Storage находится за брандмауэром, Хранилище BLOB-объектов Azure требует дополнительной настройки после подготовки виртуальной машины SQL Server. Настройте делегирование для подсети с именем VM.
Предоставление разрешений для Azure Blob Storage
В Azure Arc для миграции виртуальных машин с SQL Server используется управляемое удостоверение, чтобы аутентифицироваться в Azure Blob Storage.
Вам необходимо предоставить следующие разрешения:
- Предоставьте пользователю доступ к учетной записи хранения , в которой планируется хранить резервные копии во время миграции.
- Предоставьте пользователю доступ к группе ресурсов , содержащей учетную запись хранения.
- Предоставьте управляемой идентичности доступ к учетной записи хранения после завершения подготовки виртуальной машины SQL Server.
Предоставление пользователю доступа к учетной записи хранения
Чтобы получить доступ к резервным копиям базы данных во время миграции, назначьте пользователя, который входит на портал Azure и выполняет миграцию на Storage Blob Data Reader для учетной записи хранения, содержащей резервные копии.
Чтобы назначить роль, выполните следующие действия.
На портале Azure перейдите в группу ресурсов, содержащую учетную запись хранения.
Выберите элемент управления доступом (IAM) в меню ресурсов.
Используйте + Add, чтобы выбрать Добавить назначение ролей и открыть область Добавить назначение ролей.
Найдите и выберите роль Storage Blob Data Reader. Затем выберите Далее.
Используйте +Выберите участников, чтобы открыть область Выберите участников и найдите учетную запись пользователя, выполняющего миграцию. Если несколько пользователей переносят данные, предоставьте всем этим пользователям этот доступ. Выберите учетную запись пользователя и нажмите кнопку "Выбрать ", чтобы сохранить выбранный вариант. Проверьте параметр назначения доступа пользователю , группе или субъекту-службе.
Выберите "Проверка и назначение ", чтобы перейти на вкладку "Рецензирование и назначение ", а затем нажмите кнопку "Проверить и назначить еще раз", чтобы завершить назначение роли.
Предоставление пользователю доступа к группе ресурсов
Чтобы получить доступ к резервным копиям базы данных во время миграции, пользователю, входящему на портал Azure и выполняющему миграцию, должна быть назначена роль Reader в группе ресурсов, содержащей учетную запись хранения.
Чтобы назначить роль, выполните следующие действия.
На портале Azure перейдите в группу ресурсов, содержащую учетную запись хранения.
Выберите элемент управления доступом (IAM) в меню ресурсов.
Используйте + Add, чтобы выбрать Добавить назначение ролей и открыть область Добавить назначение ролей.
Найдите и выберите роль читателя . Затем выберите Далее.
Используйте +Выберите участников, чтобы открыть область Выберите участников и найдите учетную запись пользователя, выполняющего миграцию. Если несколько пользователей переносят данные, предоставьте всем этим пользователям этот доступ. Выберите учетную запись пользователя и нажмите кнопку "Выбрать ", чтобы сохранить выбранный вариант. Установите флажок, чтобы назначить доступ пользователю, группе или субъекту-службе, а затем нажмите Далее.
На вкладке Тип назначения установите Тип назначения на Активный, а длительность назначения на Постоянный:
Выберите "Проверка и назначение ", чтобы перейти на вкладку "Рецензирование и назначение ", а затем нажмите кнопку "Проверить и назначить еще раз", чтобы завершить назначение роли.
Предоставление управляемому удостоверению доступа к учетной записи хранения
После подготовки виртуальной машины SQL Server вам необходимо назначить роль Storage Blob Data Reader управляемому удостоверению вашей виртуальной машины SQL Server, чтобы оно могло получить доступ к вашей учетной записи Azure Blob Storage в процессе миграции.
Сначала вы должны определить, какой тип управляемого удостоверения используется виртуальной машиной SQL Server. Для этого выполните следующие действия.
- Перейдите к ресурсу Virtual machine на портале Azure.
- В разделе "Безопасность" выберите "Удостоверение" , чтобы открыть панель удостоверений . Выберите один из вариантов использования удостоверения , назначенного системой , или удостоверения, назначаемого пользователем :
- На вкладке «Системное назначение» можно использовать переключатель «Состояние», чтобы включить назначаемую системой идентификацию, если она еще не включена. Если удостоверение, назначенное системой, включено, можно выбрать назначения ролей Azure, чтобы перейти на страницу назначения ролей Azure, и использовать +Добавить назначение роли (предварительная версия) для предоставления разрешений Storage Blob Data Reader назначенному системой удостоверению виртуальной машины SQL Server, выбрав хранилище в качестве области и, выбрав ваш ресурс.
- На вкладке User assigned можно просмотреть список пользовательских назначенных удостоверений, прикрепленных к виртуальной машине SQL Server. Если вы хотите добавить новое удостоверение, назначаемое пользователем, выберите + Добавить назначенное пользователем удостоверение и выберите существующее удостоверение, назначенное пользователем из подписки, чтобы присоединить его к виртуальной машине SQL Server. Запишите имя пользовательского назначенного идентификатора, которое вы хотите использовать для аутентификации в Azure Blob Storage, поскольку он понадобится вам на следующих этапах.
Чтобы предоставить доступ управляемому удостоверению, назначенному пользователю, к учетной записи хранения, выполните следующие действия.
- Перейдите к учетной записи Azure Blob Storage на портале Azure, который вы планируете использовать для миграции.
- Выберите элемент управления доступом (IAM) в меню ресурсов.
- Используйте + Add, чтобы выбрать Добавить назначение ролей и открыть область Добавить назначение ролей.
- Найдите и выберите роль Storage Blob Data Reader. Затем выберите Далее.
- Выберите параметр "Управляемое удостоверение" в разделе "Назначить доступ".
- Используйте Выбор участников, чтобы открыть панель Выбор участников.
- В разделе "Управляемое удостоверение" выберите управляемое удостоверение, назначаемое пользователем.
- Найдите имя Основная идентификация, которое вы указали ранее на странице Идентификатор виртуальной машины SQL Server и выберите его.
- Нажмите кнопку "Выбрать ", чтобы сохранить выбранный фрагмент.
- Выберите "Проверка и назначение ", чтобы перейти на вкладку "Рецензирование и назначение ", а затем нажмите кнопку "Проверить и назначить еще раз", чтобы завершить назначение роли.
Отправка резервных копий в учетную запись Blob Storage
Когда контейнер BLOB-объектов готов и вы подтвердили, что виртуальная машина SQL Server может получить доступ к контейнеру, вы можете начать загрузку резервных копий в учетную запись Azure Blob Storage. Когда все резервные копии передаются в учетную запись хранения, вы можете продолжить миграцию.
Чтобы отправить резервные копии в Azure:
- Делайте резервные копии на экземпляре SQL Server.
- Копируйте ваши резервные копии в учетную запись Blob Storage.
Учитывайте приведенные ниже рекомендации.
- Создавайте резервные копии с параметрами
COMPRESSIONиCHECKSUM, чтобы уменьшить размер резервных файлов и предотвратить миграцию поврежденной базы данных. - Создание резервных копий в небольших пакетах.
- Используйте параллельные потоки загрузки.
- Сделайте последний файл резервной копии как можно меньше.
- Чтобы перенести несколько баз данных с помощью одного и того же контейнера Azure Blob Storage, разместите все файлы резервной копии для отдельной базы данных в отдельную папку внутри контейнера. Используйте структуру неструктурированных файлов для каждой папки базы данных. Вложение папок в папки базы данных не поддерживается.
Создание резервных копий в экземпляре SQL Server
В этом разделе показано, как создать резервную копию локально, но можно также создать резервную копию непосредственно на URL-адрес.
Настройте базы данных, которые требуется перенести в модель полного восстановления, таким образом, чтобы разрешить резервное копирование журналов.
-- To permit log backups, before the full database backup, modify the database to use the full recovery
USE master;
ALTER DATABASE SampleDB
SET RECOVERY FULL;
GO
Если у вас еще нет резервных копий, то для создания полной, разностной и резервной копии журналов базы данных в локальном хранилище используйте приведенные ниже примеры скриптов T-SQL.
CHECKSUM не требуется, но рекомендуется предотвратить миграцию поврежденной базы данных и ускорить восстановление.
В следующем примере выполняется полное резервное копирование базы данных на локальный диск:
-- Take full database backup to local disk
BACKUP DATABASE [SampleDB]
TO DISK = 'C:\BACKUP\SampleDB_full.bak'
WITH INIT, COMPRESSION, CHECKSUM;
GO
В следующем примере выполняется разностное резервное копирование базы данных на локальный диск:
-- Take differential database backup to local disk
BACKUP DATABASE [SampleDB]
TO DISK = 'C:\BACKUP\SampleDB_diff.bak'
WITH DIFFERENTIAL, COMPRESSION, CHECKSUM;
GO
В следующем примере выполняется резервное копирование журнала транзакций на локальный диск:
-- Take transactional log backup to local disk
BACKUP LOG [SampleDB]
TO DISK = 'C:\BACKUP\SampleDB_log.trn'
WITH COMPRESSION, CHECKSUM;
GO
Копирование резервных копий в учетную запись Blob Storage
После подготовки резервных копий и вы хотите начать перенос баз данных на виртуальную машину SQL Server, используйте следующие подходы для копирования существующих резервных копий в учетную запись Blob Storage.
- Скачайте и установите AzCopy.
- Скачайте и установите Azure Storage Explorer.
- Используйте Storage Explorer на портале Azure.
Замечание
Чтобы перенести несколько баз данных с помощью одного и того же контейнера Azure Blob Storage, разместите все файлы резервной копии для отдельной базы данных в отдельную папку внутри контейнера. Используйте структуру неструктурированных файлов для каждой папки базы данных. Вложение папок в папки базы данных не поддерживается.
Проверка доступа к хранилищу виртуальных машин SQL Server
Убедитесь, что виртуальная машина SQL Server может получить доступ к учетной записи Blob Storage.
Сначала отправьте любую резервную копию базы данных, например full_0_0.bak, в контейнер Azure Blob Storage.
Затем подключитесь к виртуальной машине SQL Server и запустите пример тестового запроса, чтобы определить, может ли виртуальная машина SQL Server получить доступ к резервной копии в контейнере.
Если вы используете маркер SAS для проверки подлинности в учетной записи хранения, замените <sastoken> маркером SAS и выполните следующий запрос на виртуальной машине SQL Server:
CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/databases]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<sastoken>';
RESTORE HEADERONLY
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/full_0_0.bak';
Регистрация виртуальных машин SQL Server с помощью расширения агента IaaS SQL
Если целевая виртуальная машина SQL Server уже существует, необходимо регистрируйте его с расширением агента IaaS SQL, прежде чем выбрать его в качестве целевого объекта миграции на портале Azure. Если целевая виртуальная машина SQL Server еще не существует, вы можете создать новую во время процесса миграции, и она будет автоматически зарегистрирована в расширении агента SQL IaaS.
Ограничения
При переносе баз данных SQL Server на SQL Server на виртуальных машинах Azure на портале Azure следует учитывать следующие ограничения.
- При переносе одной базы данных необходимо поместить резервные копии базы данных в структуру неструктурированных файлов в папку базы данных (включая корневую папку контейнера). Не удается вложить эти папки, так как вложение не поддерживается.
- При переносе нескольких баз данных с помощью одного и того же контейнера Azure Blob Storage необходимо разместить файлы резервного копирования для разных баз данных в отдельных папках в контейнере.
- Вы не можете перезаписать существующие базы данных в целевом SQL Server на виртуальной машине Azure с помощью DMS.
- Миграция SQL Server не поддерживает настройку высокой доступности и аварийного восстановления, чтобы соответствовать исходной топологии на целевом объекте.
- Следующие объекты сервера не поддерживаются:
- задания агента SQL Server
- Credentials
- пакеты SQL Server Integration Services (SSIS)
- Аудит сервера
- Вы не можете использовать существующую локальную среду выполнения интеграции, созданную из Azure Data Factory (ADF) для миграции баз данных с DMS.
- Виртуальные машины с целевыми версиями SQL Server 2008 и более ранних версий не поддерживаются при миграции на SQL Server на виртуальной машине Azure.
- Для миграции требуется регистрация с расширением агента IaaS SQL. Расширение поддерживает только экземпляр по умолчанию или отдельный именованный экземпляр.
- Вы можете перенести не более 100 баз данных на ту же виртуальную машину Azure, что и целевой объект, используя одну или несколько миграций одновременно. Кроме того, после завершения миграции с 100 базами данных подождите по крайней мере 30 минут, прежде чем начать новую миграцию на ту же SQL Server на виртуальной машине Azure, что и целевой объект. Кроме того, каждая операция миграции (запуск миграции, переключение) для каждой базы данных занимает несколько минут последовательно. Например, для миграции 100 баз данных может потребоваться примерно 200 (2 x 100) минут для создания очередей миграции и примерно 100 (1 x 100) минут, чтобы переключить все 100 баз данных (за исключением времени резервного копирования и восстановления). Поэтому миграция становится медленнее по мере увеличения числа баз данных. Необходимо заранее запланировать более длительное окно миграции на основе тщательного тестирования миграции или секционировать большое количество баз данных в пакеты при переносе их на SQL Server на виртуальной машине Azure.
- Помимо настройки сети или брандмауэра учетной записи Azure Storage, чтобы разрешить виртуальной машине доступ к файлам резервных копий, также необходимо настроить сеть или брандмауэр SQL Server на виртуальной машине Azure, чтобы разрешить исходящее подключение к учетной записи хранения.
- Вам необходимо оставить целевую виртуальную машину Azure включённой, пока выполняется миграция SQL Server. Кроме того, при создании новой миграции завершите или отмените любые миграции, которые находятся в процессе, либо выполните отработку отказа.