透明网关配置总结
最近因为工作中用到透明网关,在网上查到了一堆相关配置的文档,但是跟我的实际情况都有些差异,总结如下:
一.参数
oracle server : 138.20.1.1 (oracle9i aix)
tansparent gateway: 138.20.1.2(windows 2003)
sqlserver:138.20.1.4
sqlserver db name: ufdata_260_2009(sqlserver2k)
二.tansparent gateway机器配置
1.安装transparent gateway for sqlserver,只有windows版本
2.在$oracle_home/tg4msql/admin/下增加透明网关指向文件
inittg4msql260.ora,内容如下:
#
# hs init parameters
#
hs_fds_connect_info=server=138.20.1.4;database=ufdata_260_2009
hs_fds_trace_level=off
hs_fds_recovery_account=recover
hs_fds_recovery_pwd=recover
注意inittg4msql260.ora命名规则,init+侦听名
本例侦听是tg4mssql260,必须与后面的侦听文件配置的一致。
3.在$oracle_home/network/admin/下修改侦听:
listener.ora,内容如下:
sid_list_listener =
(sid_list =
(sid_desc =
(sid_name = plsextproc)
(oracle_home = e:\oracle\ora92)
(program = extproc)
)
(sid_desc =
(sid_name = tg4msql260 )
(oracle_home = e:\oracle\ora92)
(program = tg4msql )
)
)
4.重新启动透明网关所在机器的侦听
lsnrctl stop
lsnrctl start
三、oracle server配置
1.修改$oracle_home/network/admin/tnsnames.ora文件;
指向的透明网关所在机器
内容如下:
infodb =
(description =
(address_list =
(address = (protocol = tcp)(host = 138.20.1.1)(port = 1521))
)
(connect_data =
(server = dedicated)
(service_name = infodb)
)
)
sqlserver260 =
(description =
(address_list =
(address = (protocol = tcp)(host = 138.20.1.2)(port = 1521))
)
(connect_data =
(sid = tg4msql260 )
)
(hs = ok )
)
2.建立链接数据库
drop database link mssql260;
create database link mssql260 connect to oracle identified by lion1 using 'sqlserver260';
3.测试
select * from dbo.table@mssql260;
四、sqlserver 配置
新增recover用户,建立recover相关表
具体见脚本create_user_sqlserver.sql
sp_addlogin 'recover','recover','master'
go
use master
go
exec sp_grantdbaccess n'recover', n'recover'
go
exec sp_addrolemember n'db_owner', n'recover'
go
use ufdata_260_2009
go
exec sp_grantdbaccess n'recover', n'recover'
go
exec sp_addrolemember n'db_owner', n'recover'
go
use ufdata_260_2009
go
drop table hs_transaction_log
go
create table hs_transaction_log(
global_tran_id char (64) not null,
tran_comment char (255) null
)
go
五、总结
1.透明网关目前只有windows版本,所以本案例特意增加了一台windows机器,运行透明网关服务,这个机器上必须保证侦听开启;
2.sqlserver里建立recover用户及相关表,主要是为了解决sqlserver锁表的问题;实际应用时,我查了主要跟2阶段提交有关;
=============end===============
