Руководство по настройке активной георепликации и отработки отказа (База данных SQL Azure)

Применимо к: База данных SQL Azure

В этой статье показано, как настроить активную георепликацию и инициировать отработку отказа для База данных SQL Azure с помощью портал Azure, PowerShell или Azure CLI.

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

Необходимые компоненты

  • Для работы с этим руководством вам потребуется один База данных SQL Azure. Сведения о создании одной базы данных с помощью портал Azure, Azure CLI или PowerShell см. в кратком руководстве по созданию одной базы данных База данных SQL Azure.

  • Вы можете использовать портал Azure для настройки активной георепликации между подписками, если обе подписки находятся в одном клиенте Идентификатора Microsoft Entra.

    • Чтобы создать геоторичную реплику в подписке, отличную от подписки первичной в другом клиенте идентификатора Microsoft Entra ID, используйте геоторию между подписками и руководство по T-SQL клиента Microsoft Entra ID.
    • Операции георепликации между подписками, включая настройку и геоработку отказа, также поддерживаются с помощью REST API создания или обновления баз данных.

Добавление базы данных-получателя

Следующие действия позволяют создать новую базу данных-получателя в связи георепликации.

Добавить базу данных-получатель может только владелец или совладелец подписки.

Базе данных-получателю присваивается такое же имя, как у базы данных-источника, и по умолчанию тот же уровень служб и объем вычислительных ресурсов. База данных-получатель может быть отдельной базой данных или базой данных в пуле. Дополнительные сведения см. в обзоре модели приобретения на основе DTU и модели приобретения на основе виртуальных ядер. После создания и заполнения базы данных-получателя начинается репликация данных из базы данных-источника в новую базу данных-получателя.

Если вторичная реплика используется только для аварийного восстановления (аварийного восстановления) и не имеет рабочих нагрузок чтения или записи, вы можете сэкономить на затратах на лицензирование, указав базу данных для резервного копирования при настройке новой активной связи георепликации. Дополнительные сведения см. в резервной реплике без лицензии.

Примечание.

Если база данных — партнер уже создана (например, в результате прекращения предыдущей связи георепликации), выполнение команды завершится сбоем.

  1. На портале Azure перейдите к базе данных, для которой нужно настроить георепликацию.

  2. На странице Базы данных SQL выберите свою базу данных, перейдите к элементу Управление данными, выберите Реплики, а затем выберите Создать реплику.

    Снимок экрана: параметр настройки георепликации.

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

    Снимок экрана: портал Azure подписки и группы ресурсов.

  4. Выберите или создайте сервер для базы данных — получателя и при необходимости настройте параметры Вычисления и хранилища. Можно выбрать любой регион для сервера-получателя, но мы рекомендуем использовать парный регион.

    По желанию добавьте базу данных-получатель в пул эластичных баз данных. Чтобы создать базу данных — получатель, выберите Да для пункта Использовать пул эластичных БД? и выберите пул на целевом сервере. Пул должен быть создан на целевом сервере заранее. Этот рабочий процесс не создает пул.

  5. Выберите "Просмотр и создание", просмотрите сведения и нажмите кнопку "Создать".

  6. После создания базы данных — получателя начнется процесс развертывания.

    Снимок экрана: состояние развертывания базы данных — получателя

  7. Как только процесс развертывания будет закончен, отобразится состояние базы данных — получателя.

    Снимок экрана: состояние базы данных — получателя после развертывания

  8. Вернитесь на страницу базы данных — источника, а затем выберите Реплики. База данных — получатель будет указана в разделе Геореплики.

    Снимок экрана: база данных — источник и геореплики базы данных SQL

Запуск отработки отказа

Базу данных-получатель можно сделать источником.

  1. На портале Azure перейдите к базе данных-источнику в партнерстве георепликации.

  2. Перейдите к пункту Управление данными, а затем выберите Реплики.

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

    Снимок экрана: выбор принудительной отработки отказа из раскрывающегося списка.

  4. Выберите Да, чтобы запустить отработку отказа.

Команда немедленно переключит базу данных-получатель на роль базы данных-источника. Обычно этот процесс занимает не более 30 секунд.

Обе базы данных недоступны в течение 25 секунд, а роли переключаются. Если база данных-источник имеет несколько баз данных-получателей, то команда автоматически перенастроит другие базы данных-получатели для подключения к новой базе данных-источнику. Обычно вся операция занимает меньше минуты.

Удаление базы данных-получателя

Данная операция безвозвратно отменяет репликацию в базу данных — получатель и превращает ее в обычную базу данных для чтения и записи. Если подключение к базе данных — получателю прервется, команда будет выполнена, но после восстановления связи база данных — получатель не станет доступной для чтения и записи.

  1. На портале Azure перейдите к базе данных-источнику в партнерстве георепликации.
  2. Выберите Реплики.
  3. В списке Геореплики выберите базу данных, которую необходимо удалить из партнерства георепликации, нажмите кнопку с многоточием, а затем выберите пункт Отключить репликацию.
  4. Откроется окно подтверждения. Нажмите кнопку Да, чтобы удалить базу данных из партнерства георепликации. (Задайте для нее базу данных для чтения и записи, которая не является частью репликации.)

Георепликация при наличии нескольких подписок

  • Чтобы создать геоторичную реплику в подписке, отличной от подписки основной в том же клиенте Microsoft Entra, можно использовать портал Azure или действия, описанные в этом разделе.
  • Чтобы создать геоторичную реплику в подписке, отличной от подписки первичной в другом клиенте Microsoft Entra, необходимо использовать проверку подлинности SQL и T-SQL, как описано в этом разделе. Проверка подлинности Microsoft Entra для SQL Azure для георепликации между подписками не поддерживается, если логический сервер находится в другом клиенте Azure
  1. Добавьте IP-адрес клиентского компьютера, выполняющего команды T-SQL в этом примере, в брандмауэры сервера как первичных, так и вторичных серверов. Чтобы проверить этот IP-адрес, выполните следующий запрос, подключившись к серверу-источнику с того же клиентского компьютера.

    SELECT client_net_address
    FROM sys.dm_exec_connections
    WHERE session_id = @@SPID;
    

    Дополнительные сведения см. в статье Правила брандмауэра для IP-адресов Базы данных SQL Azure и Azure Synapse.

  2. master В базе данных на сервере-источнике создайте имя входа проверки подлинности SQL, выделенное для активной настройки георепликации. При необходимости измените имя пользователя и пароль.

    CREATE LOGIN geodrsetup
        WITH PASSWORD = 'ComplexPassword01';
    
  3. В той же базе данных создайте пользователя для входа и добавьте его в роль dbmanager:

    CREATE USER geodrsetup FOR LOGIN geodrsetup;
    
    ALTER ROLE dbmanager ADD MEMBER geodrsetup;
    
  4. Запишите значение SID для нового имени входа. Чтобы получить значение SID, выполните следующий запрос.

    SELECT sid
    FROM sys.sql_logins
    WHERE name = 'geodrsetup';
    
  5. Подключитесь к базе данных-источнику (а не master к базе данных) и создайте пользователя для того же имени входа.

    CREATE USER geodrsetup FOR LOGIN geodrsetup;
    
  6. В той же базе данных добавьте пользователя к роли db_owner.

    ALTER ROLE db_owner ADD MEMBER geodrsetup;
    
  7. master В базе данных на сервере-получателе создайте то же имя входа, что и на основном сервере, используя то же имя, пароль и идентификатор безопасности. Замените шестнадцатеричное значение SID в примере команды ниже на значение, полученное на Шаге 4.

    CREATE LOGIN geodrsetup
        WITH PASSWORD = 'ComplexPassword01', SID = 0x010600000000006400000000000000001C98F52B95D9C84BBBA8578FACE37C3E;
    
  8. В той же базе данных создайте пользователя для входа и добавьте его в роль dbmanager.

    CREATE USER geodrsetup FOR LOGIN geodrsetup;
    
    ALTER ROLE dbmanager ADD MEMBER geodrsetup;
    
  9. Подключитесь к master базе данных на сервере-источнике с помощью нового geodrsetup имени входа и инициируйте гео-вторичное создание на сервере-получателе. При необходимости измените имя базы данных и сервера-получателя. После выполнения команды можно отслеживать гео-вторичное создание, запрашивая представление sys.dm_geo_replication_link_status в базе данных-источнике, а также представление sys.dm_operation_status в master базе данных на сервере-источнике. Время, необходимое для создания вторичной геореплики, зависит от размера базы данных-источника.

    alter database [dbrep] add secondary on server [servername];
    
  10. После успешного создания вторичной геореплики можно удалить пользователей, имена входа и правила брандмауэра, созданные в ходе этой процедуры.