Открыть сервис

AlwaysOn Availability Groups

AlwaysOn Availability Groups — это технология обеспечения высокой доступности и аварийного восстановления для Microsoft SQL Server, реализованная на уровне экземпляра базы данных. Она представляет собой решение для создания отказоустойчивой среды, в которой одна или несколько баз данных реплицируются на несколько серверов (реплик), обеспечивая автоматическое переключение при сбое, а также возможность распределения нагрузки чтения и выполнения резервных копий.

История и развитие

Технология AlwaysOn Availability Groups была впервые представлена в Microsoft SQL Server 2012 как замена устаревшей технологии зеркального отображения баз данных (Database Mirroring). Основным нововведением стала возможность объединения нескольких баз данных в одну группу доступности, что упростило управление и позволило переключать их как единое целое. В SQL Server 2014 были добавлены возможности чтения со вторичных реплик и выполнения резервного копирования. В SQL Server 2016 появилась поддержка распределенных групп доступности (Distributed Availability Groups), позволяющая создавать географически распределенные решения. В SQL Server 2017 и 2019 были расширены возможности для работы в контейнерах и на Linux, а также улучшена интеграция с облачными платформами.

Архитектура и основные компоненты

Группа доступности (Availability Group)

Группа доступности — это логический контейнер, объединяющий одну или несколько баз данных, которые реплицируются вместе. Переключение (failover) происходит на уровне всей группы, а не отдельных баз данных. Каждая группа доступности имеет уникальное имя в сети.

Реплики (Replicas)

Реплика — это экземпляр SQL Server, который хранит копию базы данных группы доступности. Различают два типа реплик:

Режимы синхронизации

AlwaysOn поддерживает два основных режима синхронизации данных между репликами:

Режимы переключения (Failover Modes)

Существует три основных режима переключения:

Слушатель (Listener)

Слушатель — это сетевое имя (DNS-имя) и IP-адрес, через который клиентские приложения подключаются к группе доступности. Слушатель автоматически перенаправляет подключения на активную первичную реплику, обеспечивая прозрачность переключения для пользователей.

Классификация и варианты развертывания

По количеству реплик

По географическому расположению

Применение и значение

Обеспечение высокой доступности

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

Аварийное восстановление (Disaster Recovery)

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

Распределение нагрузки чтения

Вторичные реплики могут быть настроены для обслуживания запросов только для чтения (Read-Only Routing). Это позволяет разгрузить первичную реплику, перенаправляя на вторичные реплики отчеты, аналитические запросы и операции чтения из приложений.

Снижение нагрузки при резервном копировании

Резервные копии баз данных можно создавать на вторичных репликах, не оказывая влияния на производительность первичной реплики.

Примеры использования

Критика и ограничения

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →