Перенос База данных SQL Azure в поддержку зоны доступности
В этом руководстве описывается, как перенести База данных SQL Azure из недоступной зоны поддержки доступности в службу поддержки доступности.
Включение избыточности зоны для База данных SQL Azure гарантирует высокий уровень доступности, так как база данных использует Azure Зоны доступности для репликации данных в нескольких физических расположениях в регионе Azure. Выбрав избыточность зоны, вы можете сделать базы данных и эластичные пулы устойчивыми к большему набору сбоев, таких как катастрофические сбои центра обработки данных без каких-либо изменений логики приложения.
Необходимые компоненты
Перед миграцией в поддержку зоны доступности ознакомьтесь со следующей таблицей, чтобы убедиться, что База данных SQL Azure находится в поддерживаемой модели обслуживания и развертывания. Убедитесь, что уровень и модель предлагаются в регионе , поддерживающем зоны доступности.
Уровень служб | Модель развертывания | Доступность избыточности зоны |
---|---|---|
Premium | Отдельная база данных или эластичные пулы | Все регионы, поддерживающие зоны доступности |
Критически важный для бизнеса | Отдельная база данных или эластичные пулы | Все регионы, поддерживающие зоны доступности |
Общего назначения | Отдельная база данных или эластичные пулы | Выбранные регионы, поддерживающие зоны доступности |
Гипермасштабирование | Отдельная база данных | Все регионы, поддерживающие зоны доступности |
Требования к простою
Миграция для уровня служб Premium, критически важный для бизнеса и общего назначения — это онлайн-операция с кратким отключением к концу процесса миграции. Если вы реализовали логику повторных попыток для стандартных временных ошибок, вы не заметите отработку отказа.
Для уровня служб Гипермасштабирования поддержка избыточности зоны может быть указана только во время создания базы данных и не может быть изменена после подготовки ресурса. Если вы хотите перейти в поддержку зоны доступности, необходимо передать данные с копией базы данных, восстановлением на определенный момент времени или георепликой. Если целевая база данных находится в другом регионе, отличном от исходного или если избыточность хранилища резервных копий базы данных для целевого объекта отличается от исходной базы данных, время простоя пропорционально размеру операции данных.
Миграция (премиум, критически важный для бизнеса и общего назначения)
Для уровней служб "Премиум" критически важный для бизнеса и общего назначения возможна миграция в избыточность зоны.
Выполните приведенные ниже действия, чтобы выполнить миграцию для одной базы данных или эластичного пула.
Перенос одной базы данных
Перейдите к портал Azure, чтобы найти базу данных. Выполните поиск по запросу базы данных SQL и выберите этот пункт.
Выберите базу данных, которую требуется перенести.
В разделе "Параметры" выберите "Вычисления и хранилище".
Выберите "Да" , чтобы сделать эту зону базы данных избыточной?
Выберите Применить.
Дождитесь получения уведомления о завершении операции в уведомлениях в верхнем меню портал Azure.
Чтобы убедиться, что избыточность зоны включена, выберите "Обзор " и выберите " Свойства".
В разделе "Доступность" убедитесь, что для избыточности зоны задано значение "Включено".
Перенос эластичного пула
Внимание
Включение поддержки избыточности зоны для эластичных пулов делает все базы данных в зоне пула избыточными.
Перейдите к портал Azure, чтобы найти и выбрать эластичные пулы, которые требуется перенести.
Выберите параметры и нажмите кнопку "Настроить".
Выберите "Да ", чтобы сделать эту зону эластичного пула избыточной?.
Выберите Сохранить.
Дождитесь получения уведомления о завершении операции в уведомлениях в верхнем меню портал Azure.
Чтобы убедиться, что избыточность зоны включена, выберите "Настроить " и выберите параметры пула.
Параметр избыточности зоны должен иметь значение "Да".
Повторное развертывание (гипермасштабирование)
Для уровня служб "Гипермасштабирование" поддержка избыточности зоны может быть указана только во время создания базы данных и не может быть изменена после подготовки базы данных. Если вы хотите получить поддержку избыточности зоны, необходимо выполнить передачу данных из существующей отдельной базы данных уровня служб гипермасштабирования. Чтобы выполнить передачу и включить параметр избыточности зоны, клон необходимо создать с помощью копирования базы данных, восстановления на определенный момент времени или геореплики.
Рекомендации по повторному развертыванию
Существует два режима повторного развертывания (в сети и в автономном режиме):
Методы восстановления копирования базы данных и метода восстановления на определенный момент времени (автономный режим) создают базу данных с согласованной транзакцией в определенный момент времени. В результате любые изменения данных, выполненные после запуска операции копирования или восстановления, не будут доступны в скопированной или восстановленной базе данных.
Метод геореплики (онлайн-режим) — это повторное развертывание, в котором любые изменения данных из источника синхронизируются с целевым объектом.
Строка подключения для приложения должна быть обновлена, чтобы указать на базу данных, избыточной между зонами.
Повторное развертывание одной базы данных
Копирование базы данных
Чтобы создать копию базы данных и включить избыточность зоны с помощью портал Azure, PowerShell или Azure CLI, следуйте инструкциям в копировании транзакционно согласованной копии базы данных в База данных SQL Azure.
Восстановление на определенный момент времени
Чтобы создать восстановление базы данных на определенный момент времени и включить избыточность зоны с помощью портал Azure, PowerShell или Azure CLI, следуйте инструкциям в статье "Восстановление на точке во времени".
Геореплика
Чтобы создать геореплику базы данных, выполните следующие действия.
Следуйте инструкциям с помощью портал Azure, PowerShell или Azure CLI в настройке активной георепликации и отработки отказа (База данных SQL Azure) и включите избыточность зоны в разделе "Вычисления и хранилище"
Реплика заполняется, и время, затраченное для заполнения данных, зависит от размера исходной базы данных. Вы можете отслеживать состояние заполнения в портал Azure или выполнив следующие запросы TSQL в базе данных-реплике:
SELECT * FROM sys.dm_geo_replication_link_status; SELECT * FROM sys.dm_operation_status;
После завершения заполнения базы данных выполните плановую отработку отказа (без потери данных), чтобы сделать базу данных избыточной для зоны целевой базой данных в качестве первичной. Используйте sys.dm_geo_replication_link_status для просмотра состояния георепликации.
CATCH_UP
Когдаreplication_state_desc
база данных-получатель находится в состоянии, согласованном с транзакцией. В динамическом представлении управления sys.dm_operation_status найдитеstate_desc
времяCOMPLETED
завершения операции заполнения.Обновите имя сервера в строка подключения приложения, чтобы отразить новую базу данных, избыточной между зонами.
Чтобы очистить, рассмотрите возможность удаления исходной избыточной базы данных без зоны из связи геореплики. Его можно удалить.
Отключение избыточности зоны
Чтобы отключить избыточность между зонами для одной базы данных или эластичного пула, можно использовать портал или API ARM.
Чтобы отключить избыточность между зонами для уровня служб гипермасштабирования, можно отменить шаги, описанные в разделе "Повторное развертывание" (гипермасштабирование).
Чтобы отключить избыточность зоны с помощью портал Azure:
Перейдите к портал Azure, чтобы найти и выбрать эластичные пулы, которые больше не нужно использовать для зоны.
Выберите параметры и нажмите кнопку "Настроить".
Выберите "Нет", чтобы сделать эту зону эластичного пула избыточной?.
Выберите Сохранить.
Чтобы отключить избыточность зоны с помощью PowerShell, выполните следующие действия.
Set-AzSqlElasticpool -ResourceGroupName "RSETLEM-AzureSQLDB" -ServerName "rs-az-testserver1" -ElasticPoolName "testep10" -ZoneRedundant:$false
Чтобы отключить избыточность зоны с помощью Azure CLI:
az sql elastic-pool update --resource-group "RSETLEM-AzureSQLDB" --server "rs-az-testserver1" --name "testep10" --zone-redundant false
Чтобы отключить избыточность зоны с помощью ARM, см. статью "Базы данных— создание или обновление в ARM " и использование properties.zoneRedundant
свойства.