好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《叱咤风云:GoldenGate企业级运维实战》第9章GoldenGate错误分析与处理.doc

23页
  • 卖家[上传人]:平***
  • 文档编号:18347769
  • 上传时间:2017-11-14
  • 文档格式:DOC
  • 文档大小:340.89KB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第 9 章 GoldenGate 错误分析与处理在维护 GoldenGate 过程中,由于各种意外情况,难免还是会遇到各种各样的问题掌握一些常见的 GoldenGate 故障诊断和错误分析的方法是非常有必要的,而且掌握这些错误分析工具也进一步加深对 GoldenGate 产品的认识与对 GoldenGate 原理的理解 9.1 GoldenGate 常见异常处理GoldenGate 运行起来后,随着时间的推移可能会碰到各种各样的问题,下面就来介绍常见的异常现象以及常见的异常处理方法9.1.1 异常处理的一般步骤首先确定是 GoldenGate 的哪类进程有故障(是抽取,投递还是复制进程有问题 ) ,解决故障的一般思路如下1)通过 GGSCI>view report 命令查找 ERROR 字样,确定错误原因并根据其信息进行排除2)通过 GGSCI>view ggsevt 查看告警日志信息3)检查两端数据库是否正常运行,网络是否连通4)通过 logdump 工具对队列文件进行分析9.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第 9 章 GoldenGate 错误分析与处理 125(8)执行 start er *启动所有进程检查各进程是否正常启动,即可进入正常复制9.1.3 Extract 常见异常以下为列举的一些常见错误信息作参考用Extract 进程包括抽取与投递进程 ,投递进程报错大部分原因是由于网络故障 对于源数据库,抽取进程 ext**如果变为 abended,则可以通过在 GGSCI 中使用 view report 命令查看报告,可以通过搜索 ERROR 快速定位错误一般情况下,抽取异常的原因是因为其无法找到对应的归档日志,可以通过到归档日志目录命令行下执行 示例 9-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.exeWindows 2008 需以下额外操作:右击‘cmd’ (DOS),选择 ‘run as administrator’,然后在该命令行窗口中启动 MGR 和 Extract 才能够读取数据库日志将 OGG 安装为服务时(即运行“install ADDSERVICE”) ,需要使用管理员权限,这样启动服务后即能访问日志通过以下方法为运行 MGR 和 Extract 的用户添加读取日志文件的权限,右键单击文叱咤风云:GoldenGate 企业级运维实战126件->property->security->edit->add2)Extract: Cannot load program./ggsci…错误分析:请首先检查该 OGG Build 是否与操作系统和数据库相符;其次如果是 Aix请检查 xLC 版本是否符合 10.0 以上另外,检查环境变量中动态库路径是否包含了数据库动态库目录,例如:示例 9-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 开始读取示例 9-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 用户可以远程登录) 。

      使用 sqlplus 验证:示例 9-4:sqlplus sys/oracle@asm1 as sysdba; //可以登录 sqlplus sys/oracle@asm1; //报告 15000 错误(5)Extract: Encountered SCN That Is Not Greater Than The Highest SCN Already Processed…原因分析:在 Oracle RAC 环境中,Extract 会启动一个 coordinator 线程对各个节点上的操作进行根据 SCN 进行排序,它在交易提交后会等待 THREADOPTIONS 第 9 章 GoldenGate 错误分析与处理 127MAXCOMMITPROPAGATIONDELAY 参数所定义时间来确认空闲节点没有交易,然后再收集交易数据;写入该交易后如果空闲节点后来又读到了一个 SCN 号要小的交易,则会报告该错误可能原因: 各节点之间没有配置时钟同步 一个节点比另外一个节点慢(IO 问题可能性较大) 解决办法:调整 Extract 参数:示例 9-5:THREADOPTIONS MAXCOMMITPROPAGATIONDELAY IOLATENCY MAXCOMMITPROPAGATIONDELAY 有效范围是 0-90000ms,默认为 3s(即3000ms) 。

      GGS V9.x 多了一个 IOLATENCY 参数,可以与上面参数一起加大等待时间IOLATENCY 默认为 1.5s,最大值为 180000建议出现该错误后可以将此二参数设置为较大值,然后逐步降低获取最佳设置需要补充说明的是,出现此错误后,因后面的交易可能已被写入日志,重启 Extract可成功启动,但是可能出现如下问题:Extract 会重写当前队列覆盖前面的交易数据,后面的 Data Pump 进程可能会出现 “abend with incompatible record errors”错误终止(旧版本可能出现) 此问题的恢复步骤如下① 停止所有 Data Pump 和 Replicat,针对所有的 Extract 记录其 Write Checkpoint 的队列 Seqno② 对于每个 Extract 向下滚动一个队列:示例 9-6:ALTER EXTRACT [name], ETROLLOVER 启动 Extract 查看是否滚动到了下一个队列,记录其新队列 seqno,应当是旧队列号+1③ 修改 Data Pump 从新的队列开始传输:示例 9-7:ALTER EXTRACT [pump_name], EXTSEQNO ##### EXTRBA 0 重启 Data Pump 查看是否能够重启成功并从新的队列传输。

      ④ 修改 Replicat 参数文件,加入或者打开 HANDLECOLLISIONS,如果有GROUPTRANSOPS 和 MAXTRANSOPS 请注释掉,启动 Replicat,观察其是否能够读取新传输过来的队列如 Replicat 无法自动滚动到下一个队列,需要通过如下命令手工滚动:示例 9-8:叱咤风云:GoldenGate 企业级运维实战128alter replicat [replicat_name], EXTSEQNO ##### EXTRBA 0等待 Replicat 处理到结尾没有延迟时,可以关闭 HANDLECOLLISIONS 和恢复原来的 GROUPTRANSOPS 和 MAXTRANSOPS 参数⑤ 重新启动 Replicat 即可恢复正常复制 9.1.4 网络故障如果 MGR 进程参数文件里面设置了 autorestart 参数,GoldenGate 可以自动重启,无需人工干预当网络不稳定或者发生中断时, GoldenGate 负责产生远地队列的 Pump 进程会自动停止 此时,MGR 进程会定期根据 mgr.prm 里面 autorestart 设置自动启动 Pump 进程以试探网络是否恢复。

      在网络恢复后,负责产生远程队列的 Pump 进程会被重新启动,GoldenGate 的检查点机制可以保证进程继续从上次中止复制的日志位置继续复制需要注意的是,因为源端的抽取进程(Capture)仍然在不断地抓取日志并写入本地队列文件,但是 Pump 进程不能及时把本地队列搬动到远地,所以本地队列文件无法被自动清除而堆积下来,需要保证足够容量的存储空间来存储堆积的队列文件计算公式如下存储容量单位时间产生的队列大小×网络故障恢复时间MGR 定期启动抓取和复制进程参数配置。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.