GoldenGate的常见异常处理 - 面向对象网,数据库,oracle,学习,对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > 数据库 > ORACLE > 正文

GoldenGate的常见异常处理

来源: www.bianceng.cn 阅读:

在维护GoldenGate过程中,由于各种意外情况,难免还是会遇到各种各样的问题。掌握一些常见的GoldenGate故障诊断和错误分析的方法是非常有必要的,而且掌握这些错误分析工具也进一步加深对GoldenGate产品的认识与对GoldenGate原理的理解。

GoldenGate运行起来后,随着时间的推移可能会碰到各种各样的问题,下面就来介绍常见的异常现象以及常见的异常处理方法。

1.1  异常处理的一般步骤

首先确定是GoldenGate的哪类进程有故障(是抽取,投递还是复制进程有问题),解决故障的一般思路如下。

(1)通过GGSCI>view report命令查找ERROR字样,确定错误原因并根据其信息进行排除。

(2)通过GGSCI>view ggsevt查看告警日志信息。

(3)检查两端数据库是否正常运行,网络是否连通。

(4)通过logdump工具对队列文件进行分析。

1.2  RAC单节点失败

在RAC环境下,GoldenGate软件安装在共享目录下,可以通过任一个节点连接到共享目录,启动GoldenGate运行界面。如果其中一个节点失败,导致GoldenGate进程中止,可直接切换到另外一个节点继续运行。

操作步骤如下。

(1)以Oracle用户登录源系统(使用另外一个正常的节点)。

(2)确认将GoldenGate安装的所在文件系统装载到另一节点相同目录。

(3)确认GoldenGate安装目录属于Oracle用户及其所在组。

(4)确认Oracle用户及其所在组对GoldenGate安装目录拥有读写权限。

(5)进入GoldenGate安装目录。

(6)执行。/ggsci进入命令行界面。

(7)执行start mgr启动MGR。

(8)执行start er *启动所有进程。

检查各进程是否正常启动,即可进入正常复制。

1.3  Extract常见异常

以下为列举的一些常见错误信息作参考用。

Extract进程包括抽取与投递进程,投递进程报错大部分原因是由于网络故障。对于源数据库,抽取进程ext**如果变为abended,则可以通过在GGSCI中使用view report命令查看报告,可以通过搜索ERROR快速定位错误。

一般情况下,抽取异常的原因是因为其无法找到对应的归档日志,可以通过到归档日志目录命令行下执行

示例1:

ls –lt arch_x_xxxx.arc

查看该日志是否存在,如不存在则可能的原因如下。

日志已经被压缩。

GoldenGate无法自动解压缩,需要人工解压缩后才能读取。

日志已经被删除。

如果日志已经被删除,需要进行恢复才能继续复制。

一般需要定期备份归档日志,并清除旧的归档日志。需要保证归档日志在归档目录中保留足够长时间之后,才能被备份和清除。即定期备份清除若干小时之前的归档,而不是全部归档。保留时间计算如下。

某归档文件保留时间抽取进程处理完该文件中所有日志所需的时间。

可以通过命令行或者GoldenGate Director Web界面,运行info extxx showch命令查看抓取进程ext处理到哪条日志序列号。在此序列号之前的归档,都可以被安全的清除。

抽取进程在抽取不支持的数据对象时也会abend,report文件会有详细的报错信息,根据report文件来定位错误信息然后再排错即可。

下面再单独列出更多的几个故障。

(1)Extract: Application failded to initialize(Win)。

错误信息:run GGSCI command but the Alert window report "Application failded to initialize(0xc000026e)"。

GoldenGate在Windows平台上需要安装Microsoft Visual C ++ 2005 SP1 Redistributable Package。如果是Microsoft Itanium平台,需要安装vcredist_IA64.exe。

Windows 2008需以下额外操作:右击‘cmd’ (DOS),选择‘run as administrator’,然后在该命令行窗口中启动MGR和Extract才能够读取数据库日志。

将OGG安装为服务时(即运行“install ADDSERVICE”),需要使用管理员权限,这样启动服务后即能访问日志。

通过以下方法为运行MGR和Extract的用户添加读取日志文件的权限,右键单击文件->property->security->edit->add。

(2)Extract: Cannot load program./ggsci…

错误分析:请首先检查该OGG Build是否与操作系统和数据库相符;其次如果是Aix请检查xLC版本是否符合10.0以上。

另外,检查环境变量中动态库路径是否包含了数据库动态库目录,例如:

示例2:

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

不同平台下的环境变量不同。

AIX  LIBPATH。

Solaris、Linux等  LD_LIBRARY_PATH。

HP-Unix  SHLIB_PATH。

重设环境变量需重启Mgr和Ext/Rep进程。

(3)Extract: Block size mismatch (8192/512)…

裸设备的偏移量各操作系统默认为0,但AIX默认为4096。当创建裸设备时使用了-TO选项时,Oracle不会跳过4096字节而是直接从0开始读写。 因此在AIX下使用裸设备时,出现此错误需要指定OGG从偏移量0开始读取。

示例3:

tranlogoptions rawdeviceoffset 0

该参数其在实际环境中使用几率非常高,在以前版本中如果缺少此参数Extract立即终止,但新版本Extract会持续进行尝试,并不自动终止,需检查报告文件。

(4)Extract: ORA-15000 ASM connection error

该错误为OCI错误,表示Extract是在连接数据库时出现问题,根据错误信息判断为权限问题。

首先在Extract参数中检查ASM相关参数tranlogoptions asmuser sys@+ASM1,asmpassword oracle,再检查tnsnames.ora和listener.ora验证ASM实例配置是否正确,确认ASM用户具有SYSDBA 权限;如果使用SYS,需要将ASM实例的init.ora中REMOTE_LOGIN_PASSWORDFILE参数设置为SHARED(多个数据库可以使用一个password文件,只有SYS用户可以远程登录)。

Tags:
相关文章列表: