`
xiaolitnt
  • 浏览: 6729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

阅读更多

一、下载Oracle Gateways 10gRelease 2

下载地址是:

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201winsoft.html


二、安装

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. 配置监听服务。


三、配置透明网关参数文件

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. 停止监听服务(网上很多教程直接说启动监听服务,弄的我配置了N遍都没成功)

先运行cmd。

停止服务的命令是:$GATEWAY_HOME\bin\lsnrctl stop

我的是:C:\oracle\10.2.0\tg_1\bin\lsnrctl stop

2. 启动监听服务

启动服务的命令是:$GATEWAY_HOME\bin\lsnrctl start

我的是:C:\oracle\10.2.0\tg_1\bin\lsnrctl start

3. 查看监听服务的状态

命令是:$GATEWAY_HOME\bin\lsnrctl status

我的是:C:\oracle\10.2.0\tg_1\bin\lsnrctl status

服务摘要..

服务"PLSExtProc"包含1个例程。

例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...

服务"test"包含1个例程。

例程"test",状态UNKNOWN,包含此服务的1个处理程序...


命令执行成功


五、在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中的字段名有小写,则在查询时需要用双引号括起来,否则会报错。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics