Настраиваем Data Guard Broker

Классическая схема работы 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

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

ENABLE CONFIGURATION

И всё, 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? Спрашивайте в комментариях!