我们的生产系统使用Oracle集群软件实现了OGG的高可用。当集群中的一个实例宕机,OGG会abend后自动重新启动。严格来说这个高可用设计也是相对的,因为它避免不了节点宕机时OGG的进程意外中断。但是在利用vip和OGG相互关联后可以做到OGG意外中断后30秒内自动重启并且继续工作。
在高可用配置中有一个需要注意的参数:TRANLOGOPTIONS altarchivelogdest。该参数使用不当的后果是:实例宕机导致OGG一直abend,直到实例恢复后OGG才能恢复。设想一下,如果该实例所在的主机升级打补丁,或者更换硬件等耗时操作,OGG就要一直等下去,完全失去了高可用的意义。
下面来看一个案例:
1. 双节点RAC的thread 2正常shutdown,导致OGG异常中断。由于找不到thread 2的默认归档路径无法启动。
ggserr.log 日志的警告和错误如下:
OGG-01423 No valid default archive log destination directory found for thread 2.
OGG-00868 failed to validate configuration on alternative log format and destination. User must either include thread specifier in the log format or specify unique destination for each and every thread.
2. extract进程的配置文件中配置了参数TRANLOGOPTIONS altarchivelogdest
EXTRACT ext1
setenv (NLS_LANG="AMERICAN_AMERICA.AL32UTF8")
userid ogg@RAC,password ogg
GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES, RATE
numfiles 5000
DISCARDFILE ./dirrpt/extsym.dsc,APPEND,MEGABYTES 1024
DISCARDROLLOVER AT 3:00
WARNLONGTRANS 2h,CHECKINTERVAL 3m
DBOPTIONS ALLOWUNUSEDCOLUMN
EXTTRAIL ./dirdat/nd,MEGABYTES 500
DYNAMICRESOLUTION
TRANLOGOPTIONS EXCLUDEUSER ogg
TRANLOGOPTIONS CONVERTUCS2CLOBS
TRANLOGOPTIONS altarchivelogdest primary instance orcl1 /u02/Archive/ORCL/, altarchivelogdest instance orcl2 /u03/Archive/ORCL/
TABLE HR.t1;
3. 问题原因以及解决方案
从上面的配置文件中可以看出,两个实例各自拥有不同的归档日志路径。只有当两个实例都是active状态时OGG才能找到指定归档路径。如果其中一个实例宕机,成为inactive状态了,OGG不知道如何获取该归档路径了。 看起来有些傻,但是它就是这样工作的。
处理办法如下:
- 可以将两个实例的归档放在同一个路径下,都放在/u02/archive/orcl 或者都放在/u03/archive/orcl
- 在参数文件中添加THREADOPTIONS PROCESSTHREADS EXCEPT
- 直接删除该参数
我会选择使用最后一种方式,删除该参数。
那么这个参数到底有什么用处呢?
首先OGG是知道redo和归档日志的路径的,从info extract * ,detail 中看的清清楚楚,不需要通过参数指明它们在哪。如果rman备份后删除了所有的归档日志,而这些归档日志正是OGG所需的,OGG就会中断。补救措施可以将归档日志恢复出来,可以恢复到原处,也可以恢复到其它地方。通过THREADOPTIONS PROCESSTHREADS EXCEPT可以让OGG找到其它地方的归档日志。
我的理解是这样的,不知道是否正确。
Oracle GoldenGate 学习教程一:介绍和安装
Oracle GoldenGate 学习教程二、配置和使用
Oracle GoldenGate 学习教程三、加密
GoldenGate更新丢失问题
GoldenGate单向表DML同步
Oracle GoldenGate 系列:Extract 进程的恢复原理
Oracle GoldenGate安装配置
Oracle goldengate的OGG-01004 OGG-1296错误
Oracle GoldenGate快速入门教程:基本概念和配置
搭建一个Oracle到Oracle的GoldenGate双向复制环境
GoldenGate的安全配置
Oracle GoldenGate(OGG)诊断
: