Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519942
  • 博文数量: 60
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 507
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-14 19:15
文章分类

全部博文(60)

文章存档

2012年(1)

2011年(7)

2010年(52)

我的朋友

分类: Oracle

2011-05-25 11:01:36

关键字:Oracle 10g Transparent Gateway for Microsoft SQL Server;Oracle 10g透明网关;透明网关设置。

下面是详细步骤:
1、下载透明网关(GATEWAY)
10g下,透明网管是一个单独的组件,需要单独下载安装。

这个安装包有200多m。

2、安装

现在的安装环境是数据库DB和透明网关装在同一台服务器上。
安装透明网关:
解压后,进入目录,点击setup.exe,启动安装界面,安装oracle transparent gateway for microsoft sql server;
下一步,输入sqlserver地址和sqlserver 数据库名,这里你可以输入正确的,也可以随便输入,或者留空,我们可以安装完成后再配置。
安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。

安装完后需保证透明网关的path地址在db的path地址前面,否则后续的连接或测试可能会不成功。

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

默认情况下,安装透明网关时会生成一个默认的参数文件:inittg4msql.ora,它的sid是tg4mssql,你可以使用这个文件,也可以新建一个文件。本例选择新建文件。
进入$GATEWAY_HOME\tg4msql\admin目录,在我这里是:C:\oracle\product\10.2.0\tg_1\tg4msql\admin

($GATEWAY_HOME是指透明网关的安装主目录,比如我本机的安装目录为:C:\oracle\product\10.2.0\tg_1,注:若未特殊说明,下面的GATEWAY_HOME均是指tg_1的目录,即:C:\oracle\product\10.2.0\tg_1,配置文件目录的正确性也是保证后续测试成功的关键)

新建一个文件:initpatro.ora
这个名字随便取,但要注意格式:init.ora,把它理解为oracle的参数文件就可以。

(可以通过这个去查询oracle的SID HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\ORACLE_SID)
# 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="SERVER=192.168.255.92;DATABASE=patro"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

HS_FDS_CONNECT_INFO的设置有多种格式,如:
HS_FDS_CONNECT_INFO=server_name.db_name,但这种写法server_name不能为IP,且端口必须为默认的1433,如:
HS_FDS_CONNECT_INFO=sqlserver.patro

4、在透明网关服务器上服务器上配置监听
进入$
GATEWAY_HOME\network\admin下,编辑listener.ora文件:
注意:sid_name要与上一步配置的参数文件的名称相对应:

 SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\tg_1)
      (PROGRAM = extproc)

    )
    #以下为需要增加的内容
    (SID_DESC= 
         (SID_NAME= patro) #要与上一步配置的参数文件的名称相对应
         (ORACLE_HOME=C:\oracle\product\10.2.0\tg_1)
         (PROGRAM=tg4msql) #固定的
    ) 
    #以上为需要增加的内容   
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TC-SD-027)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

5、配置tnsname.ora

进入$GATEWAY_HOME\network\admin下,编辑tnsname.ora文件:添加如下内容:

TGFORMSSQL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = TC-SD-027)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = tg4msql)      
    )
    (HS = OK) #这项很关键
  ) 

6、在系统服务里启动监听(可以在命令行启动)
需先停止原Oracle数据库的监听OracleOraDb10g_home1TNSListener,再启动透明网关的OracleOraTg10g_home1TNSListener监听服务。(注:在安装透明网关后,系统服务里会多出一下名叫:OracleOraTg10g_home1TNSListener的监听服务,注意和原监听服务OracleOraDb10g_home1TNSListener的区别,这也是为什么前面要求在设置环境变更Path的时候要保证GATEWAY_HOME必须在原DB的前面。

至此,在透明网关上的工作就算完成了。 

7、在Oralce DB SERVER创建数据库链接

SQL> create public database link patro connect to sa identified by "sa" using 'TGFORMSSQL';

注意:这里链接的数据库的密码必须用双引号且用小写字母,否则dblink会创建失败。

8、测试连接

SQL> SELECT SYSDATE FROM 

查出来结果说明配置成功。

注意:1521为服务器DB的端口号

      1522为透明网关的端口号

9、使用注意 

通过 create table WEB_PATROLAREA (ID,PATROLID,PATROLAREA ) as  select * from  同步数据时,新建的表必须写上字段名

通过 create table WEB_PATROLAREA (ID,PATROLID,PATROLAREA ) as  select ("ID","PATROLID","PATROLAREA" ) from  同步数据时,sql表中的字段要加上引号。

给用户加上create any table 和 drop any table 权限

10、其它注意事项

注1:如果在测试过程中,出现:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 的错误,则在$GATEWAY_HOME\network\admin\listener.ora文件中加入如下粗体所示的部分:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

   (SID_DESC =

    (GLOBAL_DBNAME = ORCL)

    (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)  

    (SID_NAME = ORCL)

    )

  )

注2:若在透明网关配置成功完成后发现原DB的监听配置丢失,只需要将原DB的C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora中的配置信息拷贝到C:\oracle\product\10.2.0\tg_1\NETWORK\ADMIN\tnsnames.ora即可。




阅读(5140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~