Data Guard学习物理standby REDO传输服务
五、管理归档中断
如果primary数据库中的归档日志没能成功发送至standby数据库,就会出现归档中断。当然通常情况下你不需要担心这一点,因为dg会自动检测并尝试复制丢失的归档以解决中断问题,通过什么解决呢?FAL(Fetch Archive Log)。
FAL分server和client,前面创建步骤中讲初始化参数时想必大家也注意到了。FAL client自动主动要求传输归档文件,FAL server则响应FAL client发送的请求。多好的两口子啊。
FAL机制会自动处理下列类似的归档中断问题:
当创建物理或逻辑的standby数据库,FAL机制会自动获取primary数据库热备时产生的归档文件。
当接收的归档文件出现下列的问题时,FAL机会会自动获取归档文件解决:
当接收到的归档在应用之后被删除时;
当接收到的归档所在磁盘损坏时;
当存在多个物理standby时,FAL机制会自动尝试从其它standby服务器获取丢失的归档文件。
让大家了解这个东西不是为了让你做什么,而是希望你放心,oracle会管理好这些,如果它没有管理好,你明白这个原理,你也能分析一下它为什么没能管理好,通过什么方式能够促使它恢复有效管理的能力,当然你一定要自己动手,也可以,下面通过示例来说明手工处理归档中断(注意,俺只描述步骤,演示俺就不做了。因为三思现在用地最高可用性模式,不会丢失归档地说,哇哈哈哈:))
1、首先你要确认一下standby是否存在归档中断
可以通过查询v$archive_gap视图来确定,如果有记录就表示有中断。
SQL> select *from v$archive_gap;
这一步的目的是为了取出对应的LOW_SEQUENCE#和HIGH_SEQUENCE#,如果有RAC的话,还需要注意一下THREAD#。
2、查找sequence对应的归档文件
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 10;
3、复制对应的归档文件到standby
注意,如果是RAC的话,要找对机器哟:)
然后通过alter database register logfile命令将这些文件重新注册一下,例如:
SQL> ALTER DATABASE REGISTER LOGFILE 'e:\ora10g\jsspdg\xxxx.arc';
然后重启redo应用即可。
0
相关文章