用dblink可以将两个数据库连接起来,这样可以在神通数据库中使用语句搜索到orcale数据库中的表内容
Linux环境创建并连接Oracle的dblink
以Oracle11g为例
-
一、在神通数据库所在服务器上下载并安装Oracle的客户端
Oracle客户端下载官网地址:Oracle Instant Client Downloads
rpm -ivh oracle-instantclient-basic-21.3.0.0.0-1.el8.x86_64.rpm
rpm -ivh oracle-instantclient-sqlplus-21.3.0.0.0-1.el8.x86_64.rpm
默认路径 /usr/lib/oracle
二、配置tnsnames.ora文件,如果没有,请手动创建此文件并添加以下内容(如果添加多个,在第一个下面接着写一个配置即可)
vim /usr/lib/oracle/21/client64/network/admin/tnsnames.ora
ORCL = --网络服务名称
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.239)(PORT = 1521)) --oracle所在服务器的ip及端口号
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
三、配置环境变量
vim ~/.bash_profile 添加以下内容
export PATH
PATH=$PATH:$HOME/bin
export ORACLE_HOME=/usr/lib/oracle/21/client64/lib
export TNS_ADMIN=$ORACE_HOME/networt/admin
export ORACLE_BASE=/usr/lib/oracle/21/
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID= ora11g
export PATH
[root@localhost ~]# source ~/.bash_profile
四、在上述环境变量下,启动神通数据库
oscar -o normal -d osrdb(su -root 使用root账号登陆)
五、创建dblink
isql登录神通数据库,密码szoscar55
命令:isql -hip地址 -d库名 -p端口号 -U用户名/密码
SQL>create databaselink db1 connect to system identified by '123456' using 'ORCL' FOR ORACLE;
六、注意事项
- Oracle的环境变量必须生效
- 如果神通数据库报错:ERROR, 无法找到 libclntsh.so,dblink连接oracle功能将无法使用请确认是否安装oracle客户端,并测试sqlplus是否可以连接oracle
请检查ORACLE_HOME中是否含有libclntsh.so及libnnz11.so文件,以及sqlplus是否可以远程连接此orale实例。
如果缺少这两个文件,可以做如下尝试:
a、查找并修改ORACLE_HOME中其他文件的名称,例如libclntsh.so.11.1、libnnz21.so,修改为上述或者做link链接
b、神通数据库安装目录的datamigrate文件夹下有libclntsh.so.11.1和libnnz11.so文件,可以copy到ORACLE_HOME