10G的环境
起因:备库断电
试了各种方法,包括备库环境重建,备库v$managed_standby里的sequence# , 包括scn号,在主库切换日志的时,都正常改变,说明备库日志应用正常,无奈主库v$archived_log里备库的日志的applied列始终是no
无奈之下,网上找一个帖子,那个仁兄竟然有metalink账号,各种羡慕,原帖我就不给链接了,贴一段他查metalink的部分如下
--------------------------------------------------------------------------------
查了官网metlink,这样描述的:
The ARCH-RFS Heartbeat Ping between the Primary and Standby Database is responsible for updating the APPLIED-Column of v$archived_log on the Primary Database. There is a designated Heartbeat ARCn-Process on the Primary Database to perform this Ping. If this Process starts to hang, it does not communicate with the remote RFS-Process any more and so it cannot update the Primary accordingly.
Toggling log_archive_max_processes down to 1 and back to original value (eg 4) will get this restarted.
SQL>archive log list;
SQL>alter system set log_archive_max_processes=1 scope=memory;
SQL>alter system set log_archive_max_processes=4;
SQL>alter system archive log current;
SQL> select thread#, sequence#, applied from v$archived_log where sequence# = <sequence just archived>;
试过可以暂时刷新备库已经应用完毕的日志,但之后新应用的日志状态,又不会自动同步到主库了。
--------------------------------------------------------------------------------
据metalink描述,这个心跳是基于主库arch进程的,包括metalink给出的解决方案也是将arch进程从4变为1,但这个解决方案是不是有问题,关掉3个进程,这就很有可能造成那个心跳和进程没有被关掉。
因为arch进程不是5大主要进程,所以杀了没有也太大的问题,稍微注意一下日志切换的时间节点,pmon进程会自动帮你重新启动,所以下手杀,而且是所有的arch进程全干掉,宁可错杀一千的节奏哈。
还有一点没有想通,这位仁兄讲,可以短暂的刷新,之后没有用了,这个的确理解不了,要么就是还是不能刷新!(既然可以刷新,那就是hang住的arch进程被关了,不至于这么背,又被hang住吧,这种可能性太低了)。