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

Active Data Guard

Active Data Guard — это технология резервного копирования и восстановления данных, разработанная компанией Oracle Corporation, предназначенная для обеспечения высокой доступности, защиты данных и разгрузки ресурсов основной базы данных. Active Data Guard является расширенной версией технологии Oracle Data Guard, которая позволяет создавать и поддерживать одну или несколько физических или логических копий (standby-баз данных) основной базы данных (primary database). В отличие от стандартной версии, Active Data Guard предоставляет возможность открывать резервную базу данных в режиме только для чтения (read-only) и выполнять на ней запросы, что позволяет использовать её для отчётности, аналитики и других задач, не нагружая основную систему.

История

Технология Oracle Data Guard была впервые представлена в 2001 году в составе Oracle Database 9i. Она заменила устаревший механизм Standby Database, который существовал в Oracle 8i. Основной целью Data Guard было обеспечение автоматического переключения на резервную базу данных в случае сбоя основной. В Oracle Database 10g (2003 год) появилась поддержка физических standby-баз данных, которые могли быть открыты для чтения, но только в режиме «только для восстановления» (read-only with recovery). Однако полноценная поддержка запросов на резервной базе без остановки процесса репликации стала доступна только в Oracle Database 11g (2007 год) с выходом лицензируемого расширения Active Data Guard.

С выходом Oracle Database 12c (2013 год) Active Data Guard получил поддержку многопользовательской архитектуры (Multitenant Architecture), что позволило управлять резервными копиями для контейнерных баз данных (CDB) и подключаемых баз данных (PDB). В Oracle Database 19c (2019 год) были добавлены функции автоматического исправления повреждений блоков данных (Automatic Repair of Corrupted Blocks) и улучшенное управление сетевыми задержками. Последующие версии (21c, 23c) продолжили развитие технологии, включая интеграцию с Oracle Cloud и поддержку гибридных облачных конфигураций.

Архитектура и принцип работы

Основные компоненты

Active Data Guard состоит из трёх ключевых элементов:

  • Primary database — основная база данных, которая обслуживает приложения и выполняет все операции записи.
  • Standby database — одна или несколько резервных копий, которые синхронизируются с основной базой данных. Standby-базы могут быть физическими (идентичными копиями структуры данных) или логическими (с преобразованием SQL-команд).
  • Data Guard Broker — инструмент управления и мониторинга, который автоматизирует процессы переключения (switchover) и аварийного восстановления (failover).

Механизм репликации

Репликация данных в Active Data Guard основана на передаче журналов повторного выполнения (redo logs). Процесс включает несколько этапов:

  1. Генерация redo-данных: Основная база данных записывает все изменения в онлайн-журналы повторного выполнения (online redo logs).
  2. Передача: Специальный процесс LGWR (Log Writer) или ARCH (Archiver) отправляет redo-данные на резервную базу через сеть. Для обеспечения целостности используются протоколы TCP/IP и механизмы подтверждения приёма.
  3. Применение: На резервной базе процесс MRP (Managed Recovery Process) применяет redo-данные к файлам данных, поддерживая их в актуальном состоянии.

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

  • Максимальная защита (Maximum Protection): Гарантирует, что ни одна транзакция не будет подтверждена до тех пор, пока redo-данные не будут записаны как минимум на одну резервную базу. Это обеспечивает нулевую потерю данных, но может снижать производительность основной базы.
  • Максимальная производительность (Maximum Performance): Основная база подтверждает транзакции сразу после записи в локальный журнал, а redo-данные передаются на резервную базу асинхронно. Это минимизирует задержки, но допускает потерю данных в случае сбоя.

Открытие standby-базы для чтения

Ключевое отличие Active Data Guard от стандартного Data Guard — возможность открыть физическую standby-базу в режиме «только для чтения» (read-only) без остановки процесса восстановления. Это достигается за счёт технологии Real-Time Query, которая позволяет выполнять запросы SELECT на резервной базе, одновременно применяя redo-данные. При этом блоки данных, которые изменяются в процессе восстановления, временно блокируются для чтения, что обеспечивает согласованность данных.

Классификация

Active Data Guard можно классифицировать по нескольким признакам:

По типу standby-базы

  • Физическая standby-база: Полная копия основной базы данных на уровне файлов. Все изменения применяются побайтово, что гарантирует идентичность структур. Поддерживает режим Real-Time Query.
  • Логическая standby-база: Содержит те же данные, но структура может отличаться (например, из-за преобразования SQL-команд). Позволяет выполнять как запросы, так и ограниченные операции записи, но не поддерживает Real-Time Query.

По режиму работы

  • Синхронный (SYNC): Режим максимальной защиты, при котором транзакции подтверждаются только после записи на резервную базу.
  • Асинхронный (ASYNC): Режим максимальной производительности, допускающий задержки в репликации.

По конфигурации

  • Одноуровневая (Single-Instance): Одна основная база и одна или несколько резервных.
  • Кластерная (RAC): Основная база работает на кластере Oracle Real Application Clusters (RAC), а резервная — на отдельном сервере или кластере.
  • Гибридная (Hybrid Cloud): Часть резервных баз размещена в локальном дата-центре, часть — в облаке Oracle Cloud Infrastructure (OCI).

Применение

Active Data Guard широко используется в корпоративных средах для решения следующих задач:

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

Технология позволяет автоматически переключаться на резервную базу в случае сбоя основной (failover) или планово менять роли баз (switchover) для обслуживания. Время переключения составляет от нескольких секунд до нескольких минут в зависимости от объёма данных и конфигурации.

Защита от потери данных (Disaster Recovery)

Active Data Guard обеспечивает географическую распределённость: резервная база может находиться в другом дата-центре или регионе. В случае катастрофы (пожар, наводнение, отключение электроэнергии) данные восстанавливаются с минимальными потерями.

Разгрузка основной базы (Offloading)

Благодаря режиму Real-Time Query, резервная база может использоваться для выполнения отчётов, аналитических запросов и задач бизнес-аналитики (BI). Это снижает нагрузку на основную базу, которая остаётся доступной для операций записи. Например, в крупных розничных сетях Active Data Guard позволяет выполнять анализ продаж в реальном времени без замедления работы кассовых систем.

Тестирование и разработка

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

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

  • Финансовый сектор: Банки и страховые компании используют Active Data Guard для обеспечения непрерывности операций. Например, в случае сбоя основного сервера в Москве, резервная база в Санкт-Петербурге автоматически берёт на себя обработку транзакций.
  • Телекоммуникации: Операторы связи применяют технологию для поддержки биллинговых систем и управления абонентскими данными, где критична минимальная задержка.
  • Государственные учреждения: В России Active Data Guard используется в системах электронного документооборота и реестрах, где требуется высокая надёжность и соответствие требованиям законодательства о защите данных.

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

Несмотря на широкое распространение, Active Data Guard имеет ряд недостатков:

  • Лицензионные ограничения: Технология требует отдельной лицензии Oracle Active Data Guard, которая входит в состав опции Oracle Database Enterprise Edition. Это увеличивает стоимость владения, особенно для небольших организаций.
  • Сложность настройки: Для корректной работы требуется опытный администратор баз данных (DBA), знакомый с архитектурой Oracle и сетевыми протоколами. Ошибки в конфигурации могут привести к потере данных или снижению производительности.
  • Зависимость от сети: При синхронном режиме высокая задержка сети (более 10-20 мс) может существенно замедлить работу основной базы. В асинхронном режиме существует риск потери данных при сбое.
  • Ограничения режима Real-Time Query: Хотя резервная база открыта для чтения, некоторые операции (например, создание индексов или изменение схемы) на ней недоступны. Кроме того, запросы могут блокироваться при интенсивном восстановлении данных.

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

  • Active Data Guard поддерживает автоматическое исправление повреждённых блоков данных: если на основной базе обнаружен битый блок, он может быть восстановлен из резервной копии без остановки системы.
  • В Oracle Database 23c появилась функция Active Data Guard DML Redirect, которая позволяет выполнять операции вставки, обновления и удаления на резервной базе, автоматически перенаправляя их на основную.
  • Технология используется в облачных сервисах Oracle, таких как Oracle Autonomous Database, где управление резервными копиями полностью автоматизировано.

Источники

  • Oracle Database Documentation: «Oracle Data Guard Concepts and Administration» (версии 11g, 12c, 19c, 23c).
  • Oracle White Paper: «Active Data Guard: High Availability and Data Protection» (2020).
  • Oracle Press: «Oracle Database 12c: Data Guard and Active Data Guard» (2014).
  • Статья «Oracle Active Data Guard: Architecture and Best Practices» на сайте Oracle Technology Network (OTN).
  • Материалы конференции Oracle OpenWorld (2019-2023).

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

На главную BFOmetr →