- 最后登录
- 2014-5-9
- 在线时间
- 38 小时
- 威望
- 0
- 金钱
- 741
- 注册时间
- 2011-12-26
- 阅读权限
- 10
- 帖子
- 223
- 精华
- 1
- 积分
- 0
- UID
- 124
|
1#
发表于 2013-4-9 22:28:46
|
查看: 2376 |
回复: 0
数据库版本: 11.2.0.1
平台:redhat AS5.7 x64
机器:由于先行测试,搞了4台pc机,1,2是千兆互联,3,4也是千兆互联,12和34之间是10兆互联,模拟远距离场景。
我公司创建一个4个节点的dataguard,如同: 1------2--------3---------4,其中2,3节点可以switchover,而1,4节点只能作为备库,也就是说,其中有三个节点的cascade dataguard。
现在发现一个问题,就是archive_gap,在2,3节点主备切换时,有很大几率,会在1,4上产生gap,oracle理论上说FAL可以自动的探测到gap,并传输standby logfile,但实际上好像并不好用。
主库上有logfile sequence 1,2,3,4 ,从库上只有1,4,然后每次主库上switch logfile,从库上也能生成5,6.。。。。,也就是说log_archive_dest_status是没有error的,但是有gap就是曾经有问题。但这个gap好像FAL永远无法去填补。
在主库的alert上报 ORA-16055错误,无法归档,在从库上报Gap,all defined FAL servers have been attempted. check that the control_file_record_keep_time initialization.
我尝试过如下办法:
我怀疑是从库上有sequence较大的logfile后,主库就不会传gap,就是sequence较小的logfile;我用exec dbms_backup_restore.resetCfileSection(9); exec dbms_backup_restore.resetCfileSection(11); 清光控制文件中的archive信息,然后rman中,用catalog将没有较大sequence的logfile编入。但是,无用。
在log_archive_dest_n后加入register,还是无用。
难道,一定要手动传standby logfile,再register,或者用增量备份吗? |
|