主库丢失后执行故障转移(DGMGRL)
OracleData Guard命令
# Connect to the standby (the primary is unreachable):
dgmgrl sys@<standby_db_unique_name>
# 1) Assess the data that will be lost (Transport Lag / Apply Lag):
SHOW DATABASE '<standby_db_unique_name>';
# 2) Complete failover: all received redo is applied, then the role changes (recommended)
FAILOVER TO '<standby_db_unique_name>';
# 3) Emergency: immediately, without applying redo (more data loss)
# FAILOVER TO '<standby_db_unique_name>' IMMEDIATE;
SHOW CONFIGURATION;作用
在主库不可用时将备库提升为主库角色;完全故障转移会先应用所有已接收的 redo,IMMEDIATE 则跳过应用。
适用场景
当主库站点、存储或数据库丢失且无法恢复,而 RTO 不允许等待主备切换时。
注意
此角色转换不可逆。首先确认主库确实已宕机;如果旧主库仍处于打开状态且应用继续向其写入,就会出现脑裂和数据分叉(关闭/隔离旧主库)。在 MaxPerformance 模式下,丢失的数据量等于传输延迟。之后为新主库检查所有备库和备份策略。