达梦数据库配置dblink报加载文件失败原因分析

        使用数据库时,多个数据库之间的数据经常进行交互。当要通过达梦数据库,访问oracle数据库表中的数据时,数据库中就要创建远程数据库的dblink,这样达梦数据库可以像访问本地数据库一样访问oracle中数据库表中的数据。这时配置从达梦数据库到oracle的dblink变得尤为重要。但配置的过程中总是报如下错误:
第1 行附近出现错误[-2245]:DBLINK加载库文件失败.

第1 行附近出现错误[-2251]:DBLINK远程服务器获取对象[V$INSTANCE]失败.

分析原因如下:加载库失败,一般是动态库没有包含在LD_LIBRARY_PATH变量里。在dm连接oracle过程中看,必须让dm认识oracle

解决方法:

1、在dmdba用户下执行sqlplus能连接oracle的前提下
     a、在dmdba用户的环境变量确认该变量包含oracle lib路径。
         LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ORACLE_HOME/lib"
      b、在$ORACLE_HOME/lib目录下,执行
         ln -s libclntsh.so.11.1 libclntsh.so
        链接命令里,后面的文件名是链接文件

        执行ln -s   libocci.so.19.1 libocci.so.11.1
        ln -s  libclntsh.so.19.1  libclntsh.so.11.1 
        是使用root用户还是dmdba执行,看这个目录的权限而定。

    c、然后重启DM库服务,在启动前确认LD_LIBRARY_PATH包含了oracle的lib路径。

2、获取对象失败,一般是dm加载库文件完成,已经去连接oracle了,但oracle没有连接成功,此时需要检查oracle、ip、端口是否正常,可以通过sqlplus查看dm创建的dblink的参数是否正常。另外修改odbc配置后,重启库服务也很重要。

sqlplus配置如下:

      a、export ORACLE_HOME=/home/dmdba/instantclient
            export TNS_ADMIN=/home/dmdba/instantclient
            export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ORACLE_HOME"
            export PATH=$PATH:/home/dmdba/tool/instantclient
      b、将instantclient-basic-linux.x64-11.2.0.4.0.zip 解压到instantclient_11_2目录下,再将                        instantclient-sqlplus-linux.x64-11.2.0.4.0.zip 解压到instantclient_11_2/bin下。
      c、从oracle下将$ORACLE_HOME/sqlplus/mesg/*  文件拷贝到instantclient_11_2下。
      d、配置环境变量
           export ORACLE_HOME=/home/dmdba/instantclient_11_2
           export TNS_ADMIN=/home/dmdba/instantclient_11_2
           export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ORACLE_HOME"
           export PATH=$PATH:$ORACLE_HOME/binsqlplus           

      e、system/michael@192.168.104.34:1521/orac或sqlplus system/michael@orac34

上一篇:Oracle Secure Backup管理员指南 第5章 备份文件系统数据


下一篇:Oracle DBLINK 简单使用