DataGuard:Logical Standby Failover
大致步骤如下:
1.检查standby库是否接受到完整的归档日志
检查primary库的最大归档日志号
db2>select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
205
standby库执行(逻辑standby没有提供类型v$archive_gap视图)
db1>select thread#,SEQUENCE#,applied from dba_logstdby_log;
THREAD# SEQUENCE# APPLIED
---------- ---------- --------
1 203 YES
1 204 YES
1 205 CURRENT
standby库中的205号归档文件的状态为current,说明还没有应用,有可能是standby库停止了sql apply
db1>col realtime_apply for a10
db1>col state for a20
db1>select session_id,realtime_apply,state from v$logstdby_state;
SESSION_ID REALTIME_A STATE
---------- ---------- --------------------
22 Y SQL APPLY NOT ON
通过v$logstdby_state 视图可以看到,sql apply现在停止了,手工启动sql apply
db1>alter database start logical standby apply immediate;
db1>select session_id,realtime_apply,state from v$logstdby_state;
SESSION_ID REALTIME_A STATE
---------- ---------- --------------------
22 Y LOADING DICTIONARY
db1>select thread#,SEQUENCE#,applied from dba_logstdby_log;
THREAD# SEQUENCE# APPLIED
---------- ---------- --------
1 205 YES
如果不相等,只能到主库归档路径比对归档文件名来确定,将primary尚未发送至standby的归档文件手工复制到待转换的逻辑standby服务器,然后在standby端通过 ALTER DATABASE REGISTER LOGICAL LOGFILE ''; 命令将文件手工注册
2.检查standby机器的参数配置,以符合failover后的primary库设置(参看之前的创建配置部分)
3.failover切换
db1>alter database activate logical standby database finish apply;
db1>select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
Failover切换成功
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10159839/viewspace-598222/ ,如需转载,请注明出处,否则将追究法律责任。