GoldenGate实践学习之《问题:ERROR OGG-00662 OCI Error allocating error handle (status = -2)》

背景

    本篇文章是基于OGG软件安装完成,源端抽取进程和dump进程都配置完成,目标端复制进程也配置完成,目标端对接的是oracle数据库,但是目标端使用的数据库用户的权限不是授权的DBA权限。

    目标端使用的数据库用户的权限角色配置有:CONNECT、RESOURCE。

问题

    启动复制(Replicat)进程时报错,显示进程ABENDED,使用命令(view report 进程名)查看报错报告的时候,显示是报错:ERROR OGG-00662 OCI Error allocating error handle (status = -2)

解决过程

1、开始的时候怀疑复制(Replicat)进程配置文件中数据库的连接地址写的不对,但是使用dblogin能登录成功,所以排除了错误的可能性;

2、如果给目标端数据库用户授予DBA的权限,复制进程启动就没问题,所以确定是数据库用户权限问题。

接下来,我们采用分组给数据库用户增加权限的方式,逐步缩小影响报错的是哪个具体权限,最终找出了这个具体的权限,授权语句如下:exec DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(数据库用户名称);

总结

1、关于用户权限的说明:
    一般为了在使用OGG同步数据时可以顺利进行,需要给予用户以下权限:
Onsource database (extract):
GRANT CREATE SESSION, ALTER SESSION,RESOURCE, CONNECT,SELECT ANY dictionary,SELECT ANY TRANSACTION TO 数据库用户;
GRANT flashback ANY TABLE, SELECTANY TABLE TO 数据库用户;
GRANT EXECUTE ON dbms_flashback TO 数据库用户;

Ontarget (Replicat) database:
GRANT CREATE SESSION, ALTER SESSION,RESOURCE, CONNECT,SELECT ANY dictionary TO 数据库用户;
GRANT SELECT ANY TABLE, INSERT ANYTABLE, UPDATE ANY TABLE, DELETE ANY TABLE TO 数据库用户;
GRANT CREATE TABLE, ALTER ANY TABLE,LOCK ANY TABLE TO 数据库用户;
GRANT ALTER ANY TABLE TO 数据库用户;

    也可以直接给予用户DBA权限,但是这样做是有一定安全隐患的,实际企业中一般不会将DBA权限直接授予其他用户,可能还会涉及到数据库有专门的运维人员维护,这种权限把控的会更加严格。(我们不涉及DDL的同步,所以我们只要授权CONNECT和RESOURCE权限角色即可)。

2、OGG工作模式以及权限的说明

    从Oracle Goldengate 11g版本开始,oracle引入了一种新的capture mode,称为Integrated Capture Mode。传统的capture mode被称为classic capture mode。
    在classic capture mode中,goldengate extract进程直接读取oracle redo log,捕获数据变化,存为Goldengate的trail file格式,然后利用pump进程将这些trail file传输到目标数据库,目标数据库上的replicat进程读取这些trail file,再利用sql将这些变化apply到目标数据库里。而在新的integrated capture mode中,goldengate extract进程不再直接读取oracle redo log,而是通过与数据库log mining server整合来捕获数据变化:log mining server负责以LCR的格式从数据库日志中捕获数据变化,然后extract进程再将这些抓取的数据存成trail file的格式。
    与classic capture mode相比,这种integrated capture mode的主要差别就是extract不再直接读取oracle redo log,而交由数据库内部的log mining工具来完成。由于extract进程是由操作系统来管理的,身处数据库系统之外,integrated capture mode的这种改变所带来的主要好处体现在兼容性方面:支持更多的数据类型和存储类型,以及由于与数据库更紧密的整合,不再需要为Oracle RAC,ASM和TDE作更多额外的配置工作。
    integrated capture mode带来的另一个重要变化就是:开始支持local和downstream两种配置选项。而在classic capture mode中,我们只有local这一种选择,也就是extract进程必须配置在源数据库服务器上。

     我们使用的是Integrated Capture Mode,但是这种模式不同的版本,权限的授权方式有所区别,请根据OGG的版本需要特别注意:

11.1 and 11.2.0.1

exec DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(数据库用户);

11.2.0.2 and later

exec DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(数据库用户);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用和[2]的内容,"error Ogg-15051"是指Oracle GoldenGate在解码某一列时遇到问题,导致Java或JNI异常。根据引用的建议,可以通过使用CHARMAP来指定UTF-16到UTF-16的映射,将坏字符U+FFFE替换为替换字符U+FFFD来解决这个问题。 另外,引用提到了另一种可能的情况,即表的压缩设置可能导致OGG-01433错误。在源库中,可以使用"alter table xxxx nocompress"命令来取消表的压缩设置,然后重新启动OGG相关进程。如果这个表不是很重要,也可以选择忽略该表,但这种方法不建议使用,因为后期可能还需要手动导出导入该表的数据。 综上所述,"error Ogg-15051"是Oracle GoldenGate在解码列时遇到的错误,可以通过使用CHARMAP指定映射来解决,或者检查表的压缩设置是否导致了该错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [OGG-15051|OGG 同步 Oracle 到 Kafka 时遇到的一个错误](https://blog.csdn.net/JiekeXu/article/details/126476442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [OGG-01433故障解决方法](https://download.csdn.net/download/u013797877/10658879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值