Data Guard Broker
Data Guard Broker — это программный компонент системы управления базами данных Oracle Database, предназначенный для автоматизации и централизованного управления конфигурациями Data Guard. Data Guard Broker предоставляет интерфейс командной строки (DGMGRL) и графический интерфейс (Oracle Enterprise Manager) для создания, настройки, мониторинга и обслуживания конфигураций резервных баз данных, реализующих схемы физической или логической репликации.
История
Data Guard Broker был впервые представлен в Oracle Database 9i (2001 год) как часть функциональности Oracle Data Guard. Разработка была направлена на упрощение администрирования решений по обеспечению отказоустойчивости и аварийного восстановления (Disaster Recovery), которые ранее требовали ручного выполнения сложных команд SQL и PL/SQL. В последующих версиях (10g, 11g, 12c, 18c, 19c, 21c) функциональность Broker была расширена: добавлена поддержка быстрого переключения ролей (Fast-Start Failover), автоматического восстановления после сбоев, управления наблюдателями (Observer) и интеграция с Oracle RAC (Real Application Clusters).
Архитектура и компоненты
Конфигурация Data Guard
Data Guard Broker оперирует понятием «конфигурация» (configuration), которая включает одну первичную базу данных (primary database) и одну или несколько резервных (standby databases). Каждая база данных в конфигурации называется «участником» (member). Broker хранит метаданные о конфигурации в файле конфигурации (dg_broker_config_file1, dg_broker_config_file2), который синхронизируется между всеми участниками.
Процессы
- DMON (Data Guard Monitor) — фоновый процесс, запускаемый на каждом экземпляре базы данных, входящем в конфигурацию. DMON отвечает за связь с Broker, выполнение команд, мониторинг состояния и управление переключениями ролей.
- Observer — отдельный процесс (может быть запущен на клиентской машине или на сервере), который отслеживает доступность первичной базы данных. При обнаружении сбоя Observer инициирует автоматическое переключение на резервную базу (Fast-Start Failover), если эта функция включена.
Интерфейсы
- DGMGRL — командная строка (CLI) для управления Broker. Поддерживает команды для создания, проверки, переключения, мониторинга и устранения неполадок конфигурации.
- Oracle Enterprise Manager (OEM) — графический интерфейс, встроенный в Oracle Enterprise Manager Cloud Control, предоставляющий визуальное представление топологии, статусов и метрик.
Функциональные возможности
Автоматизация управления
Broker автоматизирует выполнение рутинных операций:
- Создание конфигурации — автоматическая настройка параметров репликации (например,
LOG_ARCHIVE_DEST_n,FAL_SERVER,DB_UNIQUE_NAME) на основе заданных политик. - Переключение ролей (Switchover) — плановое переключение ролей между первичной и резервной базами без потери данных. Broker координирует завершение транзакций, синхронизацию и смену ролей на всех участниках.
- Аварийное переключение (Failover) — принудительное переключение на резервную базу при потере первичной. Broker поддерживает как ручной, так и автоматический режим (Fast-Start Failover).
- Восстановление после сбоев — автоматическое восстановление резервной базы после переключения или ошибок репликации.
Мониторинг и диагностика
- Команда
SHOW CONFIGURATION— отображает общее состояние конфигурации, статус каждого участника (PRIMARY, PHYSICAL STANDBY, LOGICAL STANDBY, SNAPSHOT STANDBY), задержку репликации и ошибки. - Команда
SHOW DATABASE— предоставляет детальную информацию о конкретной базе: режим защиты, статус транспорта журналов, статус применения, версия Data Guard, параметры Fast-Start Failover. - Команда
VALIDATE DATABASE— проверяет корректность конфигурации и готовность к переключению.
Управление наблюдателем (Observer)
Observer — это процесс, который может быть запущен на отдельном сервере (или на резервной базе) для обеспечения автоматического переключения. Broker управляет настройками Observer, включая:
- порог времени ожидания (FastStartFailoverThreshold);
- список целевых баз для переключения;
- режим наблюдателя (Standalone или RAC-совместимый).
Режимы защиты и типы резервных баз
Data Guard Broker поддерживает три режима защиты, которые настраиваются через Broker:
- Maximum Protection — максимальная защита: транзакция не подтверждается, пока данные не записаны как минимум на одну синхронную резервную базу. Требует синхронной репликации (SYNC).
- Maximum Availability — максимальная доступность: транзакция подтверждается после записи на синхронную резервную базу, но при недоступности резервной базы первичная продолжает работу (переход в асинхронный режим).
- Maximum Performance — максимальная производительность: транзакция подтверждается сразу, репликация асинхронная (ASYNC).
Broker также управляет типами резервных баз:
- Physical Standby — точная блочная копия первичной базы, поддерживается в режиме Redo Apply.
- Logical Standby — база данных, в которую данные переносятся через SQL-преобразования (SQL Apply).
- Snapshot Standby — временная read-write копия, которая может быть преобразована обратно в Physical Standby.
Применение
Data Guard Broker широко используется в корпоративных средах для обеспечения отказоустойчивости и аварийного восстановления. Основные сценарии:
- Disaster Recovery — географически распределённые центры обработки данных (ЦОД) с автоматическим переключением при сбое основного ЦОДа.
- Плановое обслуживание — переключение на резервную базу для обновления ПО, замены оборудования или миграции данных.
- Тестирование и разработка — использование Snapshot Standby для создания тестовых сред без дублирования данных.
- Балансировка нагрузки — использование физических резервных баз для выполнения отчётов и запросов только для чтения (Read-Only mode).
Критика и ограничения
- Сложность настройки — несмотря на автоматизацию, начальная конфигурация Broker требует глубокого понимания архитектуры Data Guard и Oracle Database.
- Зависимость от версии — некоторые функции (например, Fast-Start Failover с Observer) доступны только в редакции Enterprise Edition и требуют лицензии Oracle Data Guard.
- Ограниченная совместимость — Broker не поддерживает конфигурации с использованием Oracle Data Guard Far Sync, а также некоторые старые версии Oracle Database (до 9i).
- Проблемы с Observer — в случае сбоя самого Observer автоматическое переключение может не сработать, что требует резервирования наблюдателя.
Интересные факты
- Data Guard Broker может управлять конфигурациями, включающими до 30 резервных баз данных.
- В Oracle Database 12c и выше Broker поддерживает работу с контейнерными базами данных (CDB) и подключаемыми базами данных (PDB) в архитектуре Multitenant.
- Команда
DGMGRLможет быть использована в скриптах для автоматизации операций, например, в средах с использованием Ansible или Terraform.
Источники
- Oracle Database Data Guard Broker Concepts and Administration Guide (Oracle Corporation)
- Oracle Database SQL Language Reference
- Oracle Database Administrator’s Guide
- Oracle Data Guard 11g Handbook (Robert G. Freeman)
- Oracle Database 19c Data Guard Documentation
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →