oracle dg 状态检查 先检查备库的归档日志同步情况 SELECT NAME,applied FROM v$archived_log; alter database recover managed standby database cancel; select thread#,sequence#,standby_dest,archived,applied,status from v$archived_log order by 1,2; alter database recover managed standby database using current logfile disconnect from session; .在备库 查看gap 1. select * from v$archive_gap;
ALTER DATABASE RECOVER MANAGED
STANDBY DATABASE DISCONNECT FROM SESSION; 查看主库的基本信息: SYS@enmo1 hey~1->select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE
PROTECTION_MODE
DATABASE_ROLE
SWITCHOVER_STATUS 查看备库的基本信息: SYS@enmo2 hey~2->select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE
PROTECTION_MODE
DATABASE_ROLE
SWITCHOVER_STATUS 备库应用日志保持和主库数据一致(如果不一致,执行如下语句应用日志) SYS@enmo2
hey~2->recover managed standby database using current logfile disconnect
from session; SYS@enmo2
hey~2->recover managed standby database cancel; 主库切换到备库角色并查看切换之后的状态为RECOVERY NEEDED SYS@enmo1 hey~1->alter database commit to switchover to physical standby with session shutdown; Database altered. SYS@enmo1 hey~1->shutdown abort; ORACLE instance started. Total System
Global Area 830930944 bytes SWITCHOVER_STATUS 切换应用日志,然后在查看切换状态为TO primary正常: SYS@enmo1
hey~1->recover managed standby database using current logfile disconnect
from session; SWITCHOVER_STATUS 备库切主库: SYS@enmo2 hey~2->select open_mode,protection_mode,database_role,switchover_status from v$database; OPEN_MODE
PROTECTION_MODE DATABASE_ROLE SWITCHOVER_STATUS SYS@enmo2 hey~2->alter database commit to switchover to primary with session shutdown; Database altered. SYS@enmo2 hey~2->alter database open; Database altered. SYS@enmo2 hey~2->select switchover_status,database_role from v$database; SWITCHOVER_STATUS
DATABASE_ROLE SYS@enmo2 hey~2->select open_mode,protection_mode,database_role from v$database; OPEN_MODE
PROTECTION_MODE DATABASE_ROLE READ WRITE MAXIMUM PERFORMANCE PRIMARY
二、备库不同步的问题检查方法
1、检查主备两边的序号
select SEQUENCE#,FIRST_TIME,NEXT_TIME ,APPLIED from v$archived_log order by 1; 3、检查备库是否开启实时应用 4、检查备库状态 3、看看进程MRP是否存在 4、如果不存在执行以下: alter database recover managed standby database disconnect from session; --后台执行 alter database recover managed standby database --前台执行,执行这个可以看到报错的情况 如果有报错,查看alert日志和log.xml日志 5、验证是否正常 如果看到mrp0正常 6、以上步骤处理好后,如果数据还不正常,接着处理 关闭备库,接着处理: $scp /data/oracle/oradata/voip/undotbs01.dbf 192.168.122.204:/data/oracle/oradata/voip 再在主库上重新生成一个standby control file ,拷到备库机上相应目录下, alter database create standby controlfile as '/data/oracle/oradata/voip/qyqdg01.ctl' $scp
/data/oracle/oradata/voip/qyqdg01.ctl
192.168.122.204:/data/oracle/oradata/voip 接着 -------------------------------------- alter database open read only; (责任编辑:) |