Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103691729
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-05-22 17:12:16

  来源: 

前提:在安装oracle时选中安装透明网关组件(默认不选中),如果未安装可以重新选择安装此组件.


环境:Oracle 10g + SQL SERVER 2000


数据库:Oracle:ZNDATA;SQL SERVER:ZNDB


:在oracle下建立一个tnsname用来访问SQL SERVER的ZNDB数据库.
(1)建立ZNDB数据库在Oracle下的别名zheneng:
    进入%ORACLE_HOME%tg4msqladmin目录建立文件initzheneng.ora,里面内容如下:
    HS_FDS_CONNECT_INFO="SERVER=192.168.0.197;DATABASE=ZNDB"
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER


(2)建立listener:
    进入%ORACLE_HOME%networkadmin修改listener.ora文件增加:
    (SID_DESC =
          (SID_NAME = zheneng)   ###注意:要与前面建的文件名字initzheneng去掉init后一样.
          (ORACLE_HOME = D:oracleproduct10.1.0db_1)
          (PROGRAM = tg4msql)
        )


(3)建立tnsnames.ora:
    与(2)相同目录下修改tnsnames.ora文件增加一个TNSNAME:
    ZNDB =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.197)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = zheneng)
        )
        (HS = zheneng)
      )


(4)sqlplus测试:
    创建数据库:
    sql>create   database   link   mssqlLink   connect   to   sa   identified   by   sa using 'ZNDB';
    sql>select * from akm@mssqlLink
    如果正确的话应该显示sqlserver中的结果

网上文章:
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL   SERVER里面叫做LINKED   SERVER,通过ODBC实现与其它数据库的互联。   
  而ORACLE实现异构服务的技术叫做透明网关(Transparent   Gateway),当然之前ORACLE还采用过通用连接技术。目前ORACLE利用透明网关可以实现和SQL   SERVER、SYBASE、DB2等多种数据库的互联。 
  
  透明网关的体系结构也很简单,在ORACLE和SQL   SERVER之间使用ORACLE透明网关服务器实现互连互通,其中透明网关服务器可以与ORACLE或SQL   SERVER数据库在同一台主机上,也可以是在独立的一台主机上。 
  
  下面是具体步骤:  
   
  1、在SQL   SERVER数据库上创建测试账号和表 
  
  这里我用的是10.16.74.140的PUBS数据库,账号cyx, 
  
  create   table   t   (c   char(10)); 
  
  2、我测试所用数据库和透明网关是在同一台机器上,在我本机:10.16.98.16,透明网关在oracle默认安装时是不安装的,所以如果你想用需要选择这一选项。 
  
  3、安装透明网关for   sql   server的软件后,可以在 $ORACLE_HOME下看到tg4msql目录,编辑 $ORACLE_HOME/tg4msql/admin/inittg4msql.sql文件确认这一行正确: 
  
  HS_FDS_CONNECT_INFO="SERVER=10.16.74.140;DATABASE=pubs" 
  
  4、修改透明网关server上的listener.ora,在SID_LIST中加入以下内容: 
  
  (SID_NAME   =   tg4msql)   #   SID自己命名   
  
  (ORACLE_HOME   =   c:)   
  
  (PROGRAM   =   tg4msql)   
  
  5、在oracle   server上的tnsnames.ora中加入到透明网关的tnsname,内容如下: 
  
  sql2k   =   
  
  (DESCRIPTION   =   
  
  (ADDRESS_LIST   =   
  
  (ADDRESS   =   (PROTOCOL   =   TCP)(HOST   =   10.16.98.16)(PORT   =   1521))   #此处HOST填的是透明网关SERVER的地址 
  
  )   
  
  (CONNECT_DATA   =   (SID   =   tg4msql)   )   #此SID应和透明网关SERVER上设定的SID相同 
  
  (HS=OK)   
  
  )   
  
  6、修改ORACLE   SERVER的初始化参数,将global_names设为false,因为我们并不使用GLOBAL   NAME。然后重起数据库。

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