提交需求
*
*

*
*
*
立即提交
点击”立即提交”,表明我理解并同意 《美创科技隐私条款》

logo

    产品与服务
    解决方案
    技术支持
    合作发展
    关于美创

    申请试用
      运维日记|oracle goldengate之dblink小贴士
      发布时间:2019-12-31 阅读次数: 281 次

      前言

               对于dblink,相信大家都不陌生。当用户需要跨本地数据库访问另外一个数据库的数据时,可以在本地数据库中创建远程数据库的dblink,通过dblink可以像访问本地数据库一样访问远程数据库中的数据。


              dblink为跨数据库的访问带来了很多便利,但是也存在部分缺陷。比如大量使用dblink查询,造成web项目的连接数不够,导致系统无法正常运行;比如今年6月份scn兼容性级别变化造成的大量dblink业务不可用等。


      今天小编就要和大家聊一聊dblink在ogg中的表现。


      OGG中的dblink并不能被自动同步,目标端若要使用dblink,需要手工添加。


      对于Public dblink,只要在目标库上建好,则不影响ogg的同步。但是,对于Private dblink,即使在目标库上创建了,还是会出现如下类似报错:


      报错提示ogg在执行以下的语句时,SQL


      报错<ORA-02019: connection description for remote database not found>


      小编在目标数据库上检查dblink test_pri,确认该dblink信息和源库一致,且通过该dblink可以正常查询源库数据库的数据。


      既然手工测试dblink是没有问题的,那为什么ogg不能执行该语句呢?


      根据上面的信息,我们发现dblink TEST_PRI的所属用户是zmy,这是一个Private dblink


      小知识●dblink


      了解了私有dblink后,我们就不难发现为什么会报这个错了。OGG在同步的时候是通过管理用户来执行这些语句的,而对于私有dblink,其他用户没有权限使用,从而出现了这个报错。


      那就跟着小编来进一步验证吧。


      我们在目标数据库上创建一个同名public dblink TEST_PRI

      确认dblink已经创建后,再次启动复制进程,问题解决,可以正常同步。


      限于篇幅,我们不再对dblink详细展开,最后小结一下:


      小结

      1、OGG中的dblink并不能被自动同步,目标端同步用户所私有的dblink并不能够被管理用户所管理,必须将私有的dblink改为公有的OGG才能正常运行。

      2、每次使用 dblink查询的时候,均会与远程数据库创建一个连接,dblink不会自动释放这个连接,如果是大量使用dblink查询,会造成连接数不够,导致系统无法正常运行。使用dnlink时要注意关闭连接。



      参考文献

      Oracle® Database Administrator's Guide 11g Release 2 (11.2)

      How to Close a Database Link (DBLINK) Connection (文档 ID 473635.1)



      免费试用
      服务热线

      马上咨询

      400-811-3777

      回到顶部