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

Oracle Data Guard

Oracle Data Guard — это технология резервирования и аварийного восстановления базы данных Oracle, обеспечивающая создание, поддержку и мониторинг одной или нескольких синхронизированных копий (standby-баз) производственной базы данных (primary-базы). Data Guard входит в состав редакции Oracle Database Enterprise Edition и позволяет автоматизировать переключение (failover) на резервную базу в случае сбоя основной, минимизируя время простоя и потерю данных. Технология основана на передаче и применении журналов повторного выполнения (redo logs) от primary-базы к standby-базам.

История

Разработка Data Guard началась в конце 1990-х годов как часть Oracle 8i. Первая версия, выпущенная в 2001 году, предоставляла базовые возможности физического резервирования (Physical Standby) и ручного переключения. В Oracle 9i (2002) была добавлена поддержка логического резервирования (Logical Standby), позволяющая использовать standby-базу для чтения и частичной записи. Версия Oracle 10g (2004) представила автоматическое переключение (Fast-Start Failover) и улучшенный мониторинг через Data Guard Broker. Oracle 11g (2007) ввела Active Data Guard — опцию, разрешающую открывать физическую standby-базу в режиме только для чтения во время применения журналов. В Oracle 12c (2013) появилась поддержка многопотокового применения (Real-Time Apply) и интеграция с Oracle Multitenant. Современные версии (Oracle 19c и 23c) включают такие функции, как автоматическая коррекция повреждений блоков (Automatic Block Repair), синхронизация с облачными средами (Oracle Cloud Infrastructure) и улучшенное управление через Data Guard Broker.

Архитектура

Компоненты

Data Guard состоит из следующих ключевых элементов:

  • Primary-база — основная база данных, работающая в режиме чтения-записи. Все изменения данных сначала фиксируются в журналах повторного выполнения (redo logs) на primary-базе.
  • Standby-база — одна или несколько копий primary-базы, поддерживаемых в синхронном или асинхронном режиме. Существует два типа standby-баз:
  • Physical Standby — точная блочная копия primary-базы, поддерживаемая в состоянии восстановления. Может быть открыта в режиме только для чтения (при использовании Active Data Guard).
  • Logical Standby — база данных, содержащая те же логические данные, но с возможностью структурных изменений (например, добавления индексов). Использует SQL-применение журналов.
  • Data Guard Brokerавтоматизированная система управления конфигурацией Data Guard, предоставляющая интерфейсы командной строки (DGMGRL) и графические (Enterprise Manager). Broker управляет переключениями, мониторингом и обновлением конфигурации.
  • Redo Transport Servicesслужбы передачи журналов повторного выполнения от primary-базы к standby-базам. Поддерживают три режима синхронизации:
  • SYNC (синхронный) — primary-база ожидает подтверждения от standby-базы перед фиксацией транзакции. Гарантирует нулевую потерю данных (RPO=0) при сбое primary.
  • ASYNC (асинхронный) — primary-база не ждёт подтверждения, передача журналов происходит в фоновом режиме. Допускает потерю данных, но снижает задержки на primary.
  • FASTSYNC (быстрый синхронный) — гибридный режим, используемый в некоторых конфигурациях для баланса производительности и защиты.
  • Apply Services — службы применения журналов на standby-базе. Для Physical Standby применяется Redo Apply (восстановление на уровне блоков), для Logical Standby — SQL Apply (преобразование redo в SQL-операторы).

Режимы работы

Data Guard поддерживает три основных режима защиты данных:

  • Maximum Protection — гарантирует нулевую потерю данных. Используется только синхронная передача. При недоступности standby-базы primary-база останавливается. Требует как минимум одной standby-базы с синхронным режимом.
  • Maximum Availability — аналогичен Maximum Protection, но при недоступности standby-базы primary-база продолжает работу в асинхронном режиме. После восстановления связи автоматически возвращается к синхронному.
  • Maximum Performance — используется асинхронная передача. Обеспечивает максимальную производительность primary-базы, но допускает потерю данных при сбое.

Функциональные возможности

Переключение (Switchover и Failover)

Data Guard поддерживает два типа переключения:

  • Switchover — плановое переключение ролей между primary-базой и standby-базой без потери данных. Используется для технического обслуживания, обновлений или тестирования. Выполняется без остановки работы приложения (при правильной настройке).
  • Failover — аварийное переключение на standby-базу при сбое primary-базы. Может быть автоматическим (Fast-Start Failover) или ручным. Fast-Start Failover требует настройки наблюдателя (Observer) — отдельного процесса, контролирующего доступность primary-базы.

Active Data Guard

Опция Active Data Guard (доступна в редакции Oracle Database Enterprise Edition с дополнительной лицензией) позволяет открывать физическую standby-базу в режиме только для чтения во время применения журналов. Это даёт возможность использовать standby-базу для выполнения отчётов, запросов и резервного копирования без ущерба для репликации. В Oracle 19c и 23c Active Data Guard также поддерживает:

  • Автоматическое исправление повреждённых блоков (Automatic Block Repair) — при обнаружении повреждения на primary-базе блок восстанавливается из standby-базы.
  • Удалённое восстановление (Remote Recovery) — возможность восстановления повреждённых блоков на primary-базе из standby-базы.
  • Поддержка DML (Data Manipulation Language) на standby-базе через глобальные временные таблицы.

Data Guard Broker

Broker предоставляет централизованное управление конфигурацией Data Guard через командную строку (DGMGRL) или графический интерфейс (Oracle Enterprise Manager). Основные функции:

  • Создание и настройка конфигурации Data Guard.
  • Мониторинг состояния primary-базы и standby-баз (задержки, ошибки, статус).
  • Автоматическое переключение (Fast-Start Failover) с настройкой наблюдателя.
  • Управление обновлениями (rolling upgrades) — последовательное обновление primary-базы и standby-баз без остановки работы.

Применение

Oracle Data Guard используется в следующих сценариях:

  • Аварийное восстановление (Disaster Recovery) — обеспечение работы базы данных при сбое основного центра обработки данных (ЦОД). Standby-база может располагаться в удалённом географическом регионе.
  • Плановое обслуживание — переключение на standby-базу для выполнения обновлений, патчей или аппаратного обслуживания primary-базы без остановки работы приложения.
  • Распределение нагрузки на чтение — использование standby-баз (с Active Data Guard) для выполнения запросов и отчётов, снижая нагрузку на primary-базу.
  • Миграция и тестирование — создание копий базы данных для тестирования обновлений, изменений схемы или новых приложений без влияния на продуктивную среду.

Ограничения и критика

  • Лицензирование — Data Guard входит в состав Oracle Database Enterprise Edition, но Active Data Guard требует дополнительной лицензии. Для некоторых организаций стоимость может быть значительной.
  • Задержки репликации — в асинхронном режиме возможна потеря данных (RPO > 0). В синхронном режиме увеличивается время отклика primary-базы из-за ожидания подтверждения.
  • Сложность настройки — для крупных конфигураций с несколькими standby-базами и автоматическим переключением требуется тщательное проектирование сети, хранения и мониторинга.
  • Зависимость от сетисинхронная репликация требует низкой задержки и высокой пропускной способности канала связи между primary-базой и standby-базой. При высоких задержках производительность primary-базы может снижаться.
  • Ограничения логического резервирования — Logical Standby не поддерживает все типы данных и операции (например, некоторые DDL-операции или использование специфических типов Oracle). Требуется дополнительная настройка для исключения неподдерживаемых объектов.

Конкурирующие технологии

На рынке решений для резервирования баз данных Oracle Data Guard конкурирует с:

  • Oracle GoldenGate — технология логической репликации, поддерживающая двунаправленную синхронизацию и репликацию между различными версиями Oracle и другими СУБД. GoldenGate обеспечивает более гибкую репликацию, но требует отдельной лицензии и сложнее в настройке.
  • Сторонние решения — такие как DBvisit (специализированное решение для Oracle), Quest SharePlex (логическая репликация) и Dell EMC RecoverPoint (аппаратная репликация на уровне блоков). Эти решения часто предлагают более низкую стоимость или дополнительные функции, но не интегрированы так глубоко, как Data Guard.
  • Облачные решенияOracle Cloud Infrastructure (OCI) предоставляет автоматизированное резервирование через Data Guard в облачных средах, а также собственные сервисы аварийного восстановления (OCI Disaster Recovery). Аналогичные решения есть у Amazon RDS for Oracle (Multi-AZ, Read Replicas) и Microsoft Azure SQL Database (Active Geo-Replication).

Интересные факты

  • Data Guard поддерживает до 30 standby-баз для одной primary-базы (в Oracle 19c и выше). Из них до 9 могут быть синхронными.
  • В Oracle 23c появилась возможность использования Data Guard для репликации между базами данных в разных контейнерах (PDB) в архитектуре Multitenant.
  • Data Guard может работать в сочетании с Oracle RAC (Real Application Clusters) — кластерная конфигурация primary-базы или standby-базы поддерживается.
  • Технология используется в крупнейших финансовых и телекоммуникационных системах, где требования к времени восстановления (RTO) и потерям данных (RPO) минимальны.

Источники

  • Oracle Database Data Guard Concepts and Administration Guide (Oracle Corporation, 2023)
  • Oracle Database Licensing Information User Manual (Oracle Corporation, 2023)
  • «Oracle Data Guard: The Complete Guide» by Robert G. Freeman (Oracle Press, 2011)
  • «Oracle Database 19c New Features» by Sam R. Alapati (Apress, 2020)
  • Документация Oracle по Data Guard Broker (Oracle Help Center, 2024)

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

На главную BFOmetr →