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

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

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

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

Предварительные требования

Добавить вторичную базу данных

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

  6. Создается вторичная база данных, и начинается процесс развертывания.

    Снимок экрана, показывающий состояние развертывания вторичной базы данных.

  7. Когда развертывание будет завершено, вторичная база данных отобразит свое состояние.

    Снимок экрана, показывающий состояние вторичной базы данных после развертывания.

  8. Вернитесь к странице основной базы данных, а затем выберите Replicas. Ваша дополнительная база данных указана в разделе Геореплики.

    Снимок экрана, на котором показаны основная база данных SQL и её геореплики.

Инициировать аварийное переключение

Вторичную базу данных можно переключить в основную.

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

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

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

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

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

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

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

Удалить вторичную базу данных

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

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

Георепликация между подписками

  • Чтобы создать георезервную реплику в подписке отличной от подписки основного ресурса в том же клиенте Microsoft Entra, можно использовать портал Azure или выполнить действия, описанные в этом разделе.
  • Чтобы создать геовторичную реплику в подписке, отличной от подписки, в которой находится первичная реплика, в другом клиенте Microsoft Entra, необходимо использовать аутентификацию SQL и T-SQL, как описано в шагах этого раздела. Аутентификация Microsoft Entra для Azure SQL не поддерживается для георепликации между подписками, если логический сервер находится в другом клиенте 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, выделенное для активной настройки георепликации. Замените <password> строгим паролем.

    CREATE LOGIN geodrsetup
        WITH PASSWORD = '<password>';
    
  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 = '<password>', 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. После успешного создания вторичной геореплики можно удалить пользователей, имена входа и правила брандмауэра, созданные в ходе этой процедуры.