19.11.25

Новое в SQL Server 2025: Always On, AG и FCI

Автор: David Levy, Announcing General Availability of the mssql-python Driver

Дата релиза SQL Server 2025: 18 ноября 2025 г.

В этой статье собран подробный обзор нововведений Always On в SQL Server 2025: быстрый фейловер при устойчивых проблемах, ускорение синхронизации при переключениях, улучшения отказоустойчивости после кратковременной потери кворума, усиление безопасности соединений (TLS 1.3 и TDS 8.0), гибкость управления прослушивателями и маршрутизацией трафика, а также поддержка полноценных резервных копий на вторичных репликах. Материал ориентирован на проектирование, внедрение и эксплуатацию HA/DR решений. Подготовлено с помощью GPT5.

Ключевые изменения Always On в SQL Server 2025

  • Быстрый фейловер при устойчивых проблемах здоровья: настройка RestartThreshold = 0 заставляет WSFC немедленно переводить ресурс AG на другую реплику, минуя попытки локального рестарта.
  • Асинхронная пакетная диспетчеризация запросов страниц при восстановлении: ускоряет этап undo‑redo при DR‑фейловере на асинхронную реплику; включено по умолчанию.
  • Лучшее восстановление после краткой потери кворума: базы перестают «залипать» в состоянии Not Synchronizing, корректно переходя в Resolving и возвращаясь к синхронизации.
  • Настройка задержки группового коммита: управление целевым временем ожидания отправки транзакций на вторичную реплику (в миллисекундах) для тонкого баланса между латентностью и отставанием.
  • Контроль потока коммуникаций между репликами: новая опция sp_configure позволяет первичной реплике обнаруживать отставание вторичной и оптимизировать обмен HADR‑сообщениями.
  • Distributed AG для contained AG: поддержка распределённых групп доступности между двумя контейнерными‑AG; синхронизация в Distributed AG стала эффективнее в асинхронном режиме.
  • Управление прослушивателями и маршрутизацией: теперь можно удалить IP из listener без его удаления; READ_ONLY_ROUTING_URL и READ_WRITE_ROUTING_URL можно сбрасывать в NONE.
  • TLS 1.3 и TDS 8.0 для AG и FCI: принудительное шифрование Strict/Mandatory через CLUSTER_CONNECTION_OPTIONS (повышение криптостойкости канала WSFC↔реплики).
  • Резервные копии на вторичных репликах: помимо copy‑only, теперь возможны полные и дифференциальные бэкапы на любой secondary.
  • Чтение на вторичных под контролем оптимизатора: Persisted statistics и включённый по умолчанию Query Store для readable secondary повышают предсказуемость планов.

1) Быстрый фейловер при устойчивых проблемах (RestartThreshold = 0)

По умолчанию WSFC сначала пытается перезапустить ресурс AG на текущем узле (RestartThreshold=1), и лишь затем выполняет фейловер. Для повторяющихся проблем это удлиняет простои. В 2025 можно установить RestartThreshold=0 — кластер сразу выполнит фейловер.

  • Плюсы: минимизация простоя при «персистентных» сбоях.
  • Минусы: ниже толерантность к кратковременным сбоям («флаппинг»).

PowerShell:

(Get-ClusterResource -Name "ag1").RestartThreshold = 0
Get-ClusterResource -Name "ag1" | Format-List *

Рекомендации: применяйте для критичных AG с жёсткими SLA, комбинируйте с FAILURE_CONDITION_LEVEL, HEALTH_CHECK_TIMEOUT и, при необходимости, с Database Level Health Detection.

2) Асинхронная пакетная обработка запросов страниц при восстановлении

При DR‑фейловере на асинхронную реплику (FAILOVER_ALLOW_DATA_LOSS) в процессе undo‑of‑redo новая первичная могла тормозить из‑за сетевой латентности к бывшей первичной реплике. SQL Server 2025 выполняет запросы страниц асинхронно и пакетно — быстрее достигается общий recovery‑point и сокращается время ввода в строй.

  • По умолчанию: включено.
  • Отключение для тестов: включите trace flag 12348 на всех вторичных репликах (текущих и потенциальных).
  • Эффект: заметнее при межузловой латентности (WAN); внутри одного ЦОД выгода может быть невелика.

3) Устойчивость к кратким потерям кворума (Resolving state)

Ранее после кратковременной потери кворума WSFC отдельные базы могли оставаться в Not Synchronizing. В 2025 обновлена логика: базы переходят в Resolving и корректно перезапускают синхронизацию без ручного вмешательства.

4) Настройка задержки группового коммита

Появилась опция задания целевой задержки ожидания отправки транзакций на вторичную реплику (в мс):

  • Приоритет отклика OLTP: уменьшайте задержку коммита на первичной реплике (возможен рост отставания secondary).
  • Приоритет минимального отставания: увеличивайте задержку так, чтобы вторичная реплика успевала принимать трафик.

Требуется нагрузочное тестирование под ваши SLA/RPO/RTO.

5) Контроль потока коммуникаций (flow‑control) по отставанию вторичных реплик

Новая настройка sp_configure позволяет первичной реплике обнаруживать отставание вторичной реплики и адаптировать обмен по конечным точкам HADR (эндпоинтам), уменьшая очереди и риск насыщения сети/диска на вторичных репликах.

6) Распределённые AG для контейнерных AG и ускорение синхронизации

  • Поддержан distributed AG между двумя контейнерными AG — удобнее для изоляции и гибридных топологий.
  • Меньше насыщение сети при асинхронном коммите между global primary и forwarder (особенно заметно на WAN).

7) Управление прослушивателями и маршрутизацией

Теперь можно удалить IP из listener без его пересоздания:

ALTER AVAILABILITY GROUP [AG1]
  MODIFY LISTENER 'ag1-listener'
  ( REMOVE IP ('10.10.10.10') );

Сбросить роутинг чтения/записи к «дефолтному»:

ALTER AVAILABILITY GROUP [AG1]
  MODIFY REPLICA ON N'NODE1' WITH (
    SECONDARY_ROLE (READ_ONLY_ROUTING_URL = NONE)
  );

ALTER AVAILABILITY GROUP [AG1]
  MODIFY REPLICA ON N'NODE1' WITH (
    PRIMARY_ROLE (READ_WRITE_ROUTING_URL = NONE)
  );

8) Принудительное шифрование TLS 1.3 и TDS 8.0 для AG/FCI

В SQL Server 2025 можно требовать строгую/обязательную схему шифрования соединений между WSFC и репликами (AG и FCI). Управление через CLUSTER_CONNECTION_OPTIONS.

Пример для AG:

ALTER AVAILABILITY GROUP [AccountsAG]
  SET ( CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict' );

Если имя сервера не входит в SAN сертификата:

ALTER AVAILABILITY GROUP [AccountsAG]
  SET ( CLUSTER_CONNECTION_OPTIONS =
        'Encrypt=Strict;HostNameInCertificate=ag1-listener.contoso.com' );

Указать путь к сертификату:

ALTER AVAILABILITY GROUP [AccountsAG]
  SET ( CLUSTER_CONNECTION_OPTIONS =
        'Encrypt=Strict;ServerCertificate=C:\Certs\SqlAG.cer' );

Сброс к настройкам по умолчанию:

ALTER AVAILABILITY GROUP [AccountsAG]
  SET ( CLUSTER_CONNECTION_OPTIONS = '' );

9) Резервное копирование на вторичных репликах

Помимо copy‑only, теперь можно выполнять полные и дифференциальные бэкапы на любой secondary. Это разгружает primary и ускоряет обслуживание RPO/RTO, особенно в кластерах с интенсивными OLTP‑нагрузками и отчётностью.

10) Улучшения для read‑only на secondary

  • Persisted statistics для читабельных вторичных реплик: стабильнее планы, меньше разница времени исполнения.
  • Query Store для readable secondaries включён по умолчанию: проще находить «тяжёлые» запросы в отчётах без влияния на primary.

Практические рекомендации по проектированию и эксплуатации

  • Политика автофейловера: комбинируйте FAILURE_CONDITION_LEVEL, HEALTH_CHECK_TIMEOUT, Database Level Health Detection и RestartThreshold под ваши SLA.
  • Маршрутизация трафика: используйте NONE для временного отключения роутинга без пересоздания конфигурации; балансируйте read‑intent по нескольким secondary.
  • Безопасность канала: переходите на TLS 1.3 и TDS 8.0; проверьте версии клиентов и доверие к ЦС; выстроите ротацию сертификатов.
  • DR‑фейловеры: замерьте время восстановления с новым асинхронным механизмом; на WAN‑связях ожидайте существенную выгоду.
  • Диагностика: sys.dm_hadr_database_replica_states, sys.availability_groups, sys.availability_replicas, счётчики Database Replica\Recovery Queue, XEvents; ограничивайте XEvent‑сессии по времени.
  • Сверяйте описанные тут рекомендации с документацией, нет гарантии, что что-то не является плодом галлюцинаций ИИ.

Чек‑лист апгрейда под SQL Server 2025 (Always On)

  1. Пересмотрите политику фейловеров (RestartThreshold, FAILURE_CONDITION_LEVEL, HEALTH_CHECK_TIMEOUT, DB_FAILOVER).
  2. Настройте шифрование (TLS 1.3, TDS 8.0) через CLUSTER_CONNECTION_OPTIONS; протестируйте Strict/Mandatory.
  3. Перенесите бэкапы на secondary, если это разгружает primary.
  4. Включите Persisted statistics и проверьте Query Store на readable secondary.
  5. Проведите учётную тренировку DR‑фейловера; замерьте undo‑redo.
  6. Обновите SOP/Runbook (в т.ч. про строгую криптографию и быстрый фейловер).

Вывод

SQL Server 2025 серьёзно усиливает Always On: быстрее и предсказуемее переключения (fast failover, async batch page requests), выше устойчивость к сетевым инцидентам, проще эксплуатация (гибкое управление listener/роутингом, полные/дифф‑бэкапы на secondary), безопаснее транспорт (TLS 1.3 и TDS 8.0), а также лучше поддержка гибридных сценариев (Distributed AG для contained AG). Рекомендуется поэтапное внедрение с нагрузочными замерами и контролем SLA.



Комментариев нет:

Отправить комментарий