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). Процесс включает несколько этапов:
- Генерация redo-данных: Основная база данных записывает все изменения в онлайн-журналы повторного выполнения (online redo logs).
- Передача: Специальный процесс LGWR (Log Writer) или ARCH (Archiver) отправляет redo-данные на резервную базу через сеть. Для обеспечения целостности используются протоколы TCP/IP и механизмы подтверждения приёма.
- Применение: На резервной базе процесс 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 →