需求:通过oracle访问sqlserver 数据库。
1.环境:sqlserver2000 与 oracle 10g 安装在同一台电脑上,且透明网关也安装在同一台电脑上。
sqlserver 数据库:yltrq 用户为:admin
2.工具:oracle 透明网关,下载地址:http://download.oracle.com/otn/nt/oracle10g/10201/10201_gateways_win32.zip
3. 接下来是实现步骤:
a、 安装透明网关:点击安装上面下载的透明网关,选择sqlserver的网关安装,在配置监听器的时候为了为了避免和oracle数据库监听器同名,修改监听器名称为TG4MSQL,且监听端口为1522 或其他本机未使用端口。在配置连接数据库时,sqlserver 服务器为本机电脑名或ip地址,数据库为你你需要连接的数据库。
b、安装完成后进行透明网关配置:
a.1: 删除环境变量path中所有关于透明网关的环境变量。
因为此环境是数据库和透明网关在一台机机器上,二者的目录下都有LSNRCTL程序,所以为了防止混淆,在环境变量PATH中去掉了透明网关的条目。
这里把路径名及监听名写上是为了防止使用系统的环境变量,造成错误。
a.2:修改透明网关安装目录下....\tg4msql\admin\inittg4msql.ora文件
即假设%GATEWAY_HOME% = D:\oracle\product\10.2.0\tg_1
修改%GATEWAY_HOME%\tg4msql\admin\inittg4msql.ora
HS_FDS_CONNECT_INFO="SERVER=10.0.1.12;DATABASE=hist"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
修改之后,修改文件名为inittg4.ora (init<sid>.ora).若前面设置正确的,则只需要修改文件名,若需要连接到其他数据库也可以在次修改。
a.3:修改透明网关的监听器配置:%GATEWAY_HOME%\network\admin\listener.ora 如下:
TG4MSQL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1522)) #注意这里的端口
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_TG4MSQL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = tg4) #透明网关的SID
(ORACLE_HOME = D:\oracle\product\10.2.0\tg_1)
(PROGRAM = tg4msql) #这里是固定的
)
a.4:修改透明网关的%GATEWAY_HOME%\network\admin\tnsname.ora文件,增加Sid的配置:
TG4 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1522)) #注意这里的端口
(CONNECT_DATA =
(SERVICE_NAME = tg4) #这里的SID必须与透明网关的SID
)
(HS = OK) #这里必须写
)
a.5:重启透明网关服务,启动时可能遇到启动监听之后自动停止了:
解决:
1.在透明网关中NET MANAGERZ中的服务命名中的tg4的配置的地址写成主机名或127.0.0.1 ,应该与配置文件中相同。
2..在tnsnames.ora 文件%GATEWAY_HOME%\network\admin\tnsname.ora中的
EXTPROC_CONNECTION_DATA 配置位置在 TG4 配置之前,如果在之后,可能会出错。(本人这样出过错)3.仔细检查这两个位置。其他的错误暂时还没发现,等发现了补上。
a.6:修改数据库的tnsnames.ora ,新增tg4的配置:
TG4 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1522)) #端口
(CONNECT_DATA =
(SERVICE_NAME = tg4) #这里的SID必须与透明网关的SID
)
(HS = OK) #这里必须写
)
a7:验证网关是否通:cmd---> tnsping tg4
a8:创建数据库连接
create public database link tglk connect to admin identified by admin using 'tg4'
a9: 测试是否成功:select sysdate from dual@tglk;
来源:CSDN
作者:roy_bird
链接:https://blog.csdn.net/roy_bird/article/details/8295310