ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle 10g 透明网关访问SQL Server 2008

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

原创 Linux操作系统 作者:xiaolitnt 时间:2009-07-25 19:58:07 0 删除 编辑

一、下载Oracle Gateways 10g Release 2

下载地址是:

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

 

二、安装

1.我的环境是:Windows Server 2003Oracle 10.2SQL Server 2008

2OracleSQL Server 2008装在同一个机器上,机器名为xiaoliSQL Server 2008的数据库为Test

3.透明网关要安装在SQL Server的服务器上。当安装到提示输入SQL Server服务器地址和SQL Server数据库名的时候,可以输入正确的,也可以随便输入,或者留空,安装完成后再配置。

4.  安装到最后要求配置监听服务时,如果机器上已经有了Oracle监听服务,那么不要配置,如果没有,则按典型配置。

 

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

1.  默认情况下,安装透明网关时会生成一个默认的参数文件:inittg4msql.ora,它的sidtg4mssql,可以使用这个文件,也可以新建一个文件。这里我们使用这个县城的参数文件。

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.orasid可以随便命名,一般和数据库同名,便于管理维护。

四、在透明网关服务器上服务器上配置监听

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\lsnrctl stop

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

3.  启动监听服务

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

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

4.  查看监听服务的状态

命令是:$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 个处理程序...

命令执行成功

五、配置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))';

七、测试

运行SQLselect sysdate from dual@test;

上面的test是创建的database link名。

之后就可以直接在Oracle环境中查询SQL Server 2008中的数据了,格式都和上面以上,在表的后面加上@test即可。

注:Oracle中区分大小写,如果SQL Server 2008中的字段名有小写,则在查询时需要用双引号括起来,否则会报错。

八、到这里,透明网关的配置就完成了。在配置的时候要注意透明网关的安装路径和监听服务的端口,如果你配置的端口是1522,则后面的配置也都要使用1522

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12199764/viewspace-610434/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: BIEE分析权限控制
请登录后发表评论 登录
全部评论

注册时间:2009-07-25

  • 博文量
    14
  • 访问量
    168373