DBAtlas · Атлас эксплуатации баз данных

Включить Fast-Start Failover (FSFO) и запустить observer

OracleData Guard

Команда

# 1) Targets and threshold (seconds):
EDIT DATABASE '<primary_db_unique_name>' SET PROPERTY FastStartFailoverTarget='<standby_db_unique_name>';
EDIT DATABASE '<standby_db_unique_name>' SET PROPERTY FastStartFailoverTarget='<primary_db_unique_name>';
EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold=30;
# 2) MaxAvailability for zero data loss (SYNC/FASTSYNC transport):
EDIT DATABASE '<primary_db_unique_name>' SET PROPERTY LogXptMode='FASTSYNC';
EDIT DATABASE '<standby_db_unique_name>' SET PROPERTY LogXptMode='FASTSYNC';
EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
# Acceptable loss in MaxPerformance: EDIT CONFIGURATION SET PROPERTY FastStartFailoverLagLimit=30;
ENABLE FAST_START FAILOVER;
# 3) Observer: on a third server, separate from primary and standby (passwordless connection via wallet)
dgmgrl /@<primary_tns> "START OBSERVER obs1 IN BACKGROUND FILE IS '/u01/app/oracle/dg/fsfo_obs1.dat' LOGFILE IS '/u01/app/oracle/dg/obs1.log' CONNECT IDENTIFIER IS <primary_tns>"
# 4) Verify:
SHOW FAST_START FAILOVER;
SHOW OBSERVER;

Что делает

Позволяет observer автоматически выполнить failover на standby по истечении порога, если primary недоступен, и автоматически выполнить reinstate старого primary, когда он вернётся.

Когда использовать

На критичных системах с целевым RTO в минутах, без ожидания вмешательства человека.

Внимание

Observer не должен работать на том же сервере/в том же ЦОД, что primary или standby; иначе FSFO не сработает при потере площадки или может принять неверное решение при сетевом разделении. Flashback должен быть включён на обеих базах. Слишком низкий порог превращает кратковременные сетевые сбои в ненужные failover. Для планового обслуживания выполните DISABLE FAST_START FAILOVER или учтите observer перед остановкой primary.

Открыть в DBAtlas →

Связанные материалы