Oracle(64bit)通过hsdobc访问 SQL Server

 

环境:

Red Hat Enterprise Linux Server release 5.2 64bit

Red Hat Enterprise Linux Server release 5.4 32bit

Oracle Database 10.2.0.4 64bit

SQL Server 2005

需要配置,通过hsodbc让oracle连接到sql server。

数据库在64位的Linux上,但是hsodbc的程序是32位的,即使安装的oracle是64位的oracle,所以我们需要在32位的Linux下编译我们需要的软件。

1. 下载文件

* unixODBC unixODBC-2.2.12.tar.gz 下载地址 www.unixODBC.org

* freetds freetds-0.82.tar.gz 下载地址 www.freetds.org

* Libtool libtool-2.2.4.tar.gz

* libiconv libiconv-1.12.tar.gz

2. 找一台32位的Linux AS5,安装软件

(1)安装配置 libtool

gzip –d libtool-2.2.4.tar.gz

tar –xvf libtool-2.2.4.tar

cd libtool-2.2.4

./configure –prefix=/usr/local/libtool

make

make install

(2)安装配置 libiconv

gzip –d libiconv-1.12.tar.gz

tar –xvf libiconv-1.12.tar

cd libiconv-1.12

./configure –prefix=/usr/local/libiconv

make

make install

(3)安装配置 libiconv

gzip –d unixODBC-2.2.12.tar.gz

tar –xvf unixODBC-2.2.12.tar

cd unixODBC-2.2.12

./configure –prefix=/usr/local/unixODBC –enable-gui=no

make

make install

cd /usr/local/unixODBC/lib

ar x libodbc.a

ln libodbc.so.1 libodbc.so

(4)安装配置 freetds

gzip –d freetds-0.82.tar.gz

tar –xvf freetds-0.82.tar

cd freetds-0.82

./configure –prefix=/usr/local/freetds –with-unixodbc=/usr/local/unixODBC –disable-shared

make

cp /usr/local/bin/libtool ./

make clean

make

make install

如果安装过程有错误一般都是由于确实包导致的。

3. 在64位的oracle服务器上创建一个目录 /home/oracle/unixodbc/ freetds_lib32 和 /home/oracle/unixodbc/unixodbc_lib32

用ftp工具将32位Linux上的

/usr/local/libiconv/lib

/usr/local/libtool/lib

/usr/local/unixODBC/lib

3个目录下的文件都下载到 /home/oracle/unixodbc/unixodbc_lib32 目录下。

/usr/local/freetds/lib

目录下的文件都下载到 /home/oracle/unixodbc/freetds_lib32 目录下。

4. 创建一个文件odbc.ini,内容如下:

[sqlserver]

Driver = /home/oracle/unixodbc/freetds_lib32/libtdsodbc.so

Server = 192.168.11.230

Database = EC6

Port = 1433

5. 在$ORACLE_HOME/hs/admin目录下创建个文件 initsqlserver.ora,内容如下:

HS_FDS_CONNECT_INFO = sqlserver

HS_FDS_TRACE_LEVEL = DEBUG

HS_FDS_SHAREABLE_NAME = /home/oracle/unixodbc/unixodbc_lib32/libodbc.so

set DBCINI=/home/oracle/unixodbc/odbc.ini

set TDSVER=8.0

6. 修改 $ORACLE_HOME/network/admin/listener.ora 添加下面内容:

(SID_DESC =

(ORACLE_HOME = /u01/oracle/10gdb)

(SID_NAME = sqlserver)

(PROGRAM=hsodbc)

(ENVS=LD_LIBRARY_PATH=/u01/oracle/10gdb/lib32:/u01/oracle/10gdb/hs/lib32:/home/oracle/unixodbc/unixodbc_lib32)

)

7. 重启监听器。

8. 修改 $ORACLE_HOME/network/admin/tnsnames.ora添加下面内容:

sqlserver =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.65)(PORT = 1521))

(CONNECT_DATA=(SID=sqlserver))

(HS=OK)

)

9. 创建dblink

create public database link sap

connect to "sa" identified by "sap123456"

using ’sqlserver’;

10.测试dblink

select * from "ec6.BCONT"@sap

成功通过。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/611609/viewspace-667769/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/611609/viewspace-667769/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值