环境信息:
实例名 | IP地址 |
---|---|
DMSERVER1 | 192.168.56.110 |
DMSERVER3 | 192.168.56.120 |
创建从DMSERVER1到DMSERVER3的DBLINK,以下配置均在DMSERVER1实例所在的服务器上配置
1、odbc的编译安装
上传odbc包并解压:
[root@localhost upload]# tar -zxvf unixODBC-2.3.0.tar.gz
[root@localhost upload]# cd unixODBC-2.3.0
编译ODBC,需要gcc环境
root@localhost unixODBC-2.3.0]# ./configure --enable-gui=no
[root@localhost unixODBC-2.3.0]# make
[root@localhost unixODBC-2.3.0]# make install
查看ODBC版本:
[root@localhost unixODBC-2.3.0]# odbc_config --version
2.3.0
2、ODBC的配置
查看ODBC配置文件的路径
[root@localhost ~]# odbcinst -j
unixODBC 2.3.0
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
配置ODBC文件:
odbc.ini和odbcinst.ini
[root@localhost ~]# cat /usr/local/etc/odbc.ini
[dm8]
Description=DM ODBC DSND
Driver= DM8 ODBC DRIVER
SERVER=192.168.56.120
UID=SYSDBA
PWD=SYSDBA
TCP_PORT=6236
[root@localhost ~]# cat /usr/local/etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description=ODBC DRIVER FOR DM8
DRIVER=/opt/dmdbms/dmdbms/bin/libdodbc.so
切换到dmdba用户下:
[dmdba@localhost ~]# isql dm8
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
查看实例名,是我们配置相对应的实例名,配置成功
SQL> select name from v$instance;
+---------------------------------------------------------------------------------------------------------------------------------+
| NAME |
+---------------------------------------------------------------------------------------------------------------------------------+
| DMSERVER3 |
+---------------------------------------------------------------------------------------------------------------------------------+
SQLRowCount returns 1
1 rows fetched
3、登录DMSERVER1实例创建通过odbc的外部连接
SQL> create link "SYSDBA"."LINK8" connect 'ODBC' with "SYSDBA" identified by "SYSDBA" using 'dm8';
操作已执行
已用时间: 8.204(毫秒). 执行号:900.
SQL> select * from dblinktest2@LINK8;
行号 ID NAME
---------- ----------- ----
1 1 55
2 1 55
3 1 55
4 1 55
5 1 55
6 1 55
7 1 55
8 1 55
9 89 ghhj
10 89 ghhj
11 89 ghhj
行号 ID NAME
---------- ----------- ----
12 89 ghhj
13 89 ghhj
14 89 ghhj
14 rows got
已用时间: 20.875(毫秒). 执行号:1000.
配置过程中遇到的问题及解决方法:
SQL> select * from dblinktest2@LINK8;
select * from dblinktest2@LINK8;
第1 行附近出现错误[-2245]:DBLINK加载库文件失败.
已用时间: 0.462(毫秒). 执行号:0.
将解压后的ODBC目录下的所有.so文件复制到…/dmdbms/bin目录下,再次查询,成功!
[dmdba@localhost unixODBC-2.3.0]$ find ./ -name *.so
./DriverManager/.libs/libodbc.so
./cur/.libs/libodbccr.so
./odbcinst/.libs/libodbcinst.so
[dmdba@localhost unixODBC-2.3.0]$ cp ./DriverManager/.libs/libodbc.so /opt/dmdbms/dmdbms/bin
[dmdba@localhost unixODBC-2.3.0]$ cp ./cur/.libs/libodbccr.so /opt/dmdbms/dmdbms/bin
[dmdba@localhost unixODBC-2.3.0]$ cp ./odbcinst/.libs/libodbcinst.so /opt/dmdbms/dmdbms/bin