您的位置:首页 > 数据库 > Oracle

Oracle 10g 透明网关访问SQL Server 2008

2010-11-02 17:37 501 查看
一、下载[b]Oracle Gateways 10gRelease 2[/b]
下载地址是:
http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html

二、[b]安装[/b]
1.我的环境是:Windows Server 2003、Oracle 10.2、SQL Server 2008
2.Oracle和SQL Server 2008装在同一个机器上,机器名为xiaoli,SQL Server 2008的数据库为Test。
3.透明网关要安装在SQL Server的服务器上。当安装到提示输入SQL Server服务器地址和SQL Server数据库名的时候,可以输入正确的,也可以随便输入,或者留空,安装完成后再配置。
4. 安装到最后要求配置监听服务时,如果机器上已经有了Oracle监听服务,那么不要配置,如果没有,则按典型配置。

三、配置透明网关参数文件
1. 默认情况下,安装透明网关时会生成一个默认的参数文件:inittg4msql.ora,它的sid是tg4mssql,可以使用这个文件,也可以新建一个文件。这里我们使用这个县城的参数文件。
2. 进入$GATEWAY_HOME/tg_1/tg4msql/admin目录($GATEWAY_HOME是指透明网关的安装主目录)。我的是:C:/oracle/10.2.0/tg_1/tg4msql/admin
3. 用记事本打开这个参数文件,在这里配置SQL Server的服务器名和数据库名。下面是我配置好的参数文件:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Transparent Gateway for SQL Server
#以#开头的语句都是注释
# HS init parameters
#
HS_FDS_CONNECT_INFO=xiaoli.Test #xiaoli是机器名,Test是数据库名
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

:HS_FDS_CONNECT_INFO的格式有多种,如果采用上面这种格式的话,只能用机器名,不能用IP,因为IP里有.号。
还有一种格式是:HS_FDS_CONNECT_INFO="SERVER=xiaoli;DATABASE=Test"
4. 重命名inittg4msql.ora。把名字改为:inittest.ora。这个文件名有固定的格式:init<sid>.ora,sid可以随便命名,一般和数据库同名,便于管理维护。
四、在透明网关服务器上服务器上配置监听
1. 进入目录$GATEWAY_HOME/network/admin。
我的是:C:/oracle/10.2.0/tg_1/NETWORK/ADMIN,用记事本打开listener.ora。
下面是我配置好的listener.ora文件,红色部分是新添加的。这里的ORACLE_HOME实际是透明网关的主目录。
SID_LIST_LISTENER =
(SID_LIST =
( SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = c:/oracle/10.2.0/tg_1)
(PROGRAM = extproc)
)
( SID_DESC=
(SID_NAME = test)#SID_NAME是参数文件inittest.ora里的test
(ORACLE_HOME = c:/oracle/10.2.0/tg_1)#直接复制上面的路径即可
(PROGRAM = tg4msql)#固定的
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xiaoli)(PORT = 1521))
)
)
2. 停止监听服务(网上很多教程直接说启动监听服务,弄的我配置了N遍都没成功)
先运行cmd。
停止服务的命令是:$GATEWAY_HOME/bin/lsnrctlstop
我的是:C:/oracle/10.2.0/tg_1/bin/lsnrctl stop
3. 启动监听服务
启动服务的命令是:$GATEWAY_HOME/bin/lsnrctlstart
我的是:C:/oracle/10.2.0/tg_1/bin/lsnrctl start
4. 查看监听服务的状态
命令是:$GATEWAY_HOME/bin/lsnrctlstatus
我的是:C:/oracle/10.2.0/tg_1/bin/lsnrctl status
服务摘要..
服务"PLSExtProc"包含1个例程。
例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...
服务"test"包含1个例程。
例程"test",状态UNKNOWN,包含此服务的1个处理程序...
命令执行成功
五、配置tnsname.ora
1.进入目录:$GATEWAY_HOME/NETWORK/ADMIN
我的是:C:/oracle/10.2.0/tg_1/NETWORK/ADMIN
2.用记事本打开文件tnsname.ora,在最下面添加如下内容:
test=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =xiaoli)(PORT =1521))
)
(CONNECT_DATA =
(SID =test)
)
(HS = OK)
)
3. 使用tnsping进行测试
在cmd里运行tnsping test,结果如下:
已使用TNSNAMES适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xiaoli)(PORT = 1521))) (CONNECT_DATA = (SID = test)) (HS = OK))
OK (30毫秒)
六、在Oralce数据库服务器上创建数据库链接
在进行这一步的时候,要确保sa账户被激活并且设置有密码(新建别的用户也行)。
打开SQL Plus(使用的账户应该具有创建数据库链接的权限),输入如下命令:
create public database link test
connect to sa identified by "sa" using
'(DESCRIPTION =
(ADDRESS = (PROTOCOL = tcp)(HOST =xiaoli)(PORT =1521))
(CONNECT_DATA = (SID =test)
)
(HS = ok))';
七、测试
运行SQL:select sysdate from dual@test;
上面的test是创建的database link名。
之后就可以直接在Oracle环境中查询SQL Server 2008中的数据了,格式都和上面以上,在表的后面加上@test即可。
注:在Oracle中区分大小写,如果SQL Server 2008中的字段名有小写,则在查询时需要用双引号括起来,否则会报错。
八、到这里,透明网关的配置就完成了。在配置的时候要注意透明网关的安装路径和监听服务的端口,如果你配置的端口是1522,则后面的配置也都要使用1522。
转自:http://space.itpub.net/12199764/viewspace-610434
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: