Настраиваем Data Guard Broker
2026-03-10 22:58 Diff

Теги: субд, базы данных, бд, show configuration, data guard broker, create configuration, add database, standby, primary, dgmgrl, switchover to <standby>, failover to <standby>, fast-start failover, spfile

Классическая схема работы Standby меня в принципе всегда устраивала, но появилось желание перенастроить контроль за StandBy через Data Guard Broker.

Итак, на входе у нас стабильно работающий физический StandBy. Настройка осуществляется через инструмент dgmgrl.

Подключаемся и смотрим конфигурацию:

dgmgrl / DGMGRL> show configuration; ORA-16525: The Oracle Data Guard broker is not yet available. Configuration details cannot be determined by DGMGRL DGMGRL>

Конфигурации у нас нет, поэтому начинаем её создавать:

DGMGRL> CREATE CONFIGURATION 'DGconf' AS PRIMARY DATABASE IS 'primary' > Connect identifier IS 'primary'; Error: ORA-16525: The Oracle Data Guard broker is not yet available. DGMGRL>

Брокер не включен, поэтому включаем его через sqlplus. Но перед тем как включить, необходимо выключить дополнительные пути сохранения архив-логов на StandBy. Операцию проводим на обеих машинах: primary и standby:

ALTER SYSTEM SET log_archive_dest_2='' scope=both; ALTER SYSTEM SET dg_broker_start = true scope=both;

Теперь снова пробуем создать конфигурацию в dgmgrl:

Connected as SYSDG. DGMGRL> CREATE CONFIGURATION 'DGconf' AS PRIMARY DATABASE IS 'primary' > Connect identifier IS 'primary'; Configuration "DGconf" created with primary database "primary" DGMGRL>

Добавляем StandBy в конфигурацию:

DGMGRL> ADD DATABASE 'standby' as Connect identifier IS 'standby'; Database "standby" added DGMGRL> show configuration; Configuration - DGconf Protection Mode: MaxPerformance Members: primary - Primary database standby - Physical standby database Fast-Start Failover: DISABLED Configuration Status: DISABLED

Остаётся включить конфигурацию:

И всё, Data Guard готов!

При необходимости можно сделать рабочее переключение SWITCHOVER TO <standby> и обратно. При падении основной базы можно активировать Standby командой FAILOVER TO <standby>.

Если бизнес-правила требуют, то можно ещё настроить и Fast-Start Failover, чтобы Standby активировался автоматически при отказе основной базы.

Возможные проблемы

У меня встретились две: 1. Standby система была запущена без SPFILE. Лучше это исправить сразу. 2. Physical Standby Database standby Warning ORA-16792 – некорректные параметры можно посмотреть в логе и настроить корректно. Лог живет здесь:

/opt/oracle/diag/rdbms/<standby>/<standby>/trace/drc<standby>.log

Остались вопросы по настройке Data Guard Broker? Спрашивайте в комментариях!