如何安装在64位
Unix操作系统(Linux,Solaris,AIX,HP-UX)下安装DG4ODBC
本文适用版本11.1-11.2。操作系统类型如下:
HP-UX PA-RISC (64-bit)
IBM AIX on POWER Systems (64-bit)
Oracle Solaris on SPARC (64-bit)
HP-UX Itanium
Linux x86-64
目标。从11g开始为ODBC的64位提供数据库网关,类型如上所述。
旧产品(Generic Connectivity or sometimes also 称为HSODBC)和新产品DG4ODBC (Database Gateway for ODBC)的区别:
DG4ODBC现在是一个独立的产品,他不在需要有作为oracle数据库在同一个机器下同一个ORACLE_HOMED的G4ODBC
DG4ODBC现在是一个64位应用需要64位的驱动管理,和64位的一些例外一样: DG4ODBC在HP-UX RSIC上仍然用32位,也需要32位的ODBC和一个32位的驱动管理。
DG4ODBC需要一个3级ODBC驱动。
网关对旧版本仍然可用。
补丁可以在Metalink上搜索找到。
下面将如何安装DG4ODBC:
1、64位Unix平台上的Oracle数据库的ODBC网关是一个单独的CD上。它可以安装到现有的11g数据库ORACLE_HOME
2、安装完成如下的条目应该配置:
0)ODBC驱动
1)监听listener
2)本地服务名tnsnames
3)子系统的init.ora参数
4)oracle数据库
下面详细介绍一下配置过程:
0)ODBC驱动
安装odba驱动在不同的家目录中,我们叫这些目录为ODBC_HOME
为了安装这个driver,你可以创建一个新的用户来安装软件。
来看一个简单的odbc.ini配置
[ODBC Data Sources]
mssql=MS SQL Server
[mssql]
Driver=/home/odbc/dd/lib/ivmsss22.so
Description=DataDirect 5.2 SQL Server Wire Protocol
Database=
LogonID=
Password=
Address=,
QuotedId=YES
AnsiNPW=YES
[ODBC]
IANAAppCodePage=4
InstallDir=/home/odbc/dd
Trace=0
TraceDll=/home/odbc/dd/lib/odbctrac.so
TraceFile=odbctrace.out
UseCursorLib=0
UseCursorLib=0
然后我们测试是否可以远程链接。在用demoodbc之前,你需要设置两个环境变量
a) LD_LIBRARY_PATH/LIBPATH must contain the odbc library path
AIX: export LIBPATH=$ODBC_HOME/lib:$LIBPATH
HP-UX RISC: export SHLIB_PATH=$ODBC_HOME/lib:$LIBPATH
OTHER: export LD_LIBRARY_PATH=$ODBC_HOME/lib:$LD_LIBRARY_PATH
b) export ODBCINI=$ODBC_HOME/odbc.ini
然后我们call odbc demo成功内需进行远程的MS SQL服务查询。
现在以运行监听的用户身份进行demoodbc:
$ODBC_HOME/demo/demoodbc -uid sa -pwd sa mssql
类似一下的结果应该出现:
DataDirect Technologies, Inc. ODBC Sample Application.
will connect to data source 'mssql' as user 'sa/sa'.
First Name Last Name Hire Date Salary Dept
---------- --------- --------- ------ ----
Tyler Bennett 1977-01-06 00:00:00.000 32000.0 D101
George Woltman 1982-07-08 00:00:00.000 53500.0 D101
Rich Holcomb 1983-01-06 00:00:00.000 49500.0 D202
Richard Potter 1986-12-04 00:00:00.000 15900.0 D101
David Motsinger 1985-05-05 00:00:00.000 19250.0 D202
Tim Sampair 1987-02-12 00:00:00.000 27000.0 D101
SQLFetch returns: SQL_NO_DATA_FOUND
SIDE NOTE: Please make sure QuotedId is set to yes; else DG4ODBC might fail with error:
hgopoer, line 159: got native error 170 and sqlstate 42000; message follows...
[DataDirect][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 's
ubq1'.
Exiting hgopoer, rc=0 at 2008/06/19-14:10:17
hgopars, line 347: calling SQLNumResultCols got sqlstate 42000
Exiting hgopars, rc=28500 at 2008/06/19-14:10:17 with error ptr FILE:hgopars.c L
INE:377 FUNCTION:hgopars() ID:Preprocess number of columns
1)监听listener的设置
For HP-UX RISC:
(SID_NAME=DG4ODBC)
(ORACLE_HOME=/home/oracle/oracle/product/11.1)
(ENV="SHLIB_PATH=//lib/:/lib:/home/oracle/product/11.1/lib32")
(PROGRAM=dg4odbc)
For AIX:
(SID_NAME=DG4ODBC)
(ORACLE_HOME=/home/oracle/oracle/product/11.1)
(ENV="LIBPATH=//lib/:/lib:/home/oracle/product/11.1/lib")
(PROGRAM=dg4odbc)
For all other 64bit Unix systems:
(SID_NAME=DG4ODBC)
(ORACLE_HOME=/home/oracle/oracle/product/11.1)
(ENV="LD_LIBRARY_PATH=//lib://lib:/home/oracle/product/11.1/lib")
(PROGRAM=dg4odbc)
2)tnsnames
DG4ODBC.de.oracle.com =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1511))
(CONNECT_DATA=(SID=DG4ODBC))
(HS=OK)
)
3)网关的init.ora
它成为initDG4ODBC.ora,他所在的目录$ORACLE_HOME/hs/admin.
你的初始化参数至少要有一下的参数
HS_FDS_CONNECT_INFO = mssql
HS_FDS_TRACE_LEVEL = off
HS_FDS_SHAREABLE_NAME = /home/odbc/dd/lib/libodbc.so
set ODBCINI=/home/odbc/dd/odbc.ini
其他的请参考相关文档
4)配置oracle数据库
唯一做的是需要创建一个数据库link,先正确链接到数据库,然后用下列命令:
create [public] database link
connect to identified by
using '';
如果链接MS SQL用以下语句
CREATE DATABASE LINK sqlserver
CONNECT TO "sa" IDENTIFIED BY "sa" USING 'DG4ODBC';
如果都配好的话,用一条查询语句可以验证是否成功。
select * from "systables"@sqlserver;