zoukankan      html  css  js  c++  java
  • Oracle 11g透明网关连接Sqlserver


    Oracle 11g透明网关连接Sqlserver

    oracle 透明网关是oracle连接异构数据库提供的一种技术。通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。配置后的sql查询的处理流程

    clipboard

    一、环境信息

    Oracle11g
    IP地址 172.17.84.29
    Oracle根目录 /u01/oracle/app/product/11.2.0/dbhome_1
    Oracle端口 1521

    Oracle gateway11

    IP地址 172.17.22.230
    gateway11根目录 D:product11.1.0 g_1
    gateway端口 1521
    SID HR

    Sqlserver2012

    IP地址 172.17.22.230
    数据库名 HR
    用户名 sa
    密码 admin_123

    Oracle透明网关下载地址: http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_gateways.zip

    二、Oracle透明网关配置

    2.1. gateway安装

    解压linux.x64_11gR2_gateways.zip,运行setup安装即可,这里我们将透明网关和SQLServer数据库安在了一台服务器上

    clipboard[1]

    clipboard[2]

    clipboard[3]

    下一步,填写SQLServer数据库务器主机名,如:172.17.22.230;数据库名称:HR

    clipboard[4]

    clipboard[5]

    安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。

    安装完Gateway软件后,在ORACLE_HOME目录(D:product11.2.0 g_1)下有一下dg4msql的目录,这就是Gateway软件的目录了。

    2.2. 透明网关层配置的SID信息,指明要访问的MSSQL数据库

    D:Oracleproduct11.2.0 g_1dg4msqladmininitdg4msql.ora目录下有一个initdg4msql.ora的文件。该文件是Gateway的初始参数文件,描述连接的是哪个SQL Server数据库。该文件的格式是initSID.ora,这里的SID在后面需要用到,系统默认的是dg4msql,一般情况这样就可以了。如果改名,如使用HR作为SID,则文件名变成initHR.ora。文件内容如下

    # This is a customized agent init file that contains the HS parameters
    # that are needed for the Database Gateway for Microsoft SQL Server
    #
    # HS init parameters
    #
    
    HS_FDS_CONNECT_INFO=[172.17.22.230]//HR
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER

    只要修改HS_FDS_CONNECT_INFO参数就可以了。格式是:[hostname:port]/serverinstance/databasename,其中hostname是机器名称或IP,PORT是SQL Server的端口号,SQL Server2005默认为1433.serverinstance是SQL Server的实例名,一般空着就行。Databasename是SQL Server的数据库名。因为我们在安装过程中指定了主机名和数据库名,这里已经有信息了。

    2.3. 透明网关层配置监听器,处理oracle的查询请求

    透明网关层的监听配置文件: D:Oracleproduct11.2.0 g_1NETWORKADMINlistener.ora

    这里PROGRAM指定应用程序名称,因为实例配置文件在D:Oracleproduct11.2.0 g_1dg4msqladmininitdg4msql.ora,所以PROGRAM不能改变, SID_NAME就是前面init.ora文件名里指定的SID

    # listener.ora Network Configuration File: D:product11.2.0	g_1
    etworkadminlistener.ora
    # Generated by Oracle configuration tools.
     
    SID_LIST_LISTENER =
       (SID_LIST =
         (SID_DESC =
         (GLOBAL_DBNAME = HR)
         (PROGRAM = dg4msql)
         (SID_NAME = HR)
         (ORACLE_HOME = D:product11.2.0	g_1)
        )
      )
     
        
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.22.230)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
     
    ADR_BASE_LISTENER = D:product11.2.0	g_1

    启动监听

    C:UsersAdministrator>lsnrctl start
     
    LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 20-7月 -2016 15:0
    8:31
     
    Copyright (c) 1991, 2010, Oracle.  All rights reserved.
     
    启动tnslsnr: 请稍候...
     
    TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
    系统参数文件为D:product11.2.0	g_1
    etworkadminlistener.ora
    写入d:product11.2.0	g_1diag	nslsnrWIN-158KFV5FSBRlisteneralertlog.xml的
    日志信息
    监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.17.22.230)(PORT=1521)))
    监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
     
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.22.230)(PORT=1521)))
     
    LISTENER 的 STATUS
    ------------------------
    别名                      LISTENER
    版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
    ction
    启动日期                  20-7月 -2016 15:08:47
    正常运行时间              00 小时 03 秒
    跟踪级别                  off
    安全性                    ON: Local OS Authentication
    SNMP                      OFF
    监听程序参数文件          D:product11.2.0	g_1
    etworkadminlistener.ora
    监听程序日志文件          d:product11.2.0	g_1diag	nslsnrWIN-158KFV5FSBRli
    steneralertlog.xml
    监听端点概要...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.17.22.230)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
    服务摘要..
    服务 "HR" 包含 1 个实例。
      实例 "HR", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
     
    C:UsersAdministrator>

    也可以去windows的服务中查看OracleOraGtw11g_home1TNSListener是否已经启动

    2.4 Oracle服务器配置tns

    在需要建立dblink的Oracle数据库所在服务器,配置/u01/oracle/app/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

    HR =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.22.230)(PORT = 1521))
        (CONNECT_DATA=(SID=HR))
        (HS=OK)
      )

    测试tns

    [oracle@elearningtest admin]$ tnsping HR
     
    TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 20-JUL-2016 15:14:22
     
    Copyright (c) 1997, 2013, Oracle.  All rights reserved.
     
    Used parameter files:
    /u01/oracle/app/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
     
     
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.22.230)(PORT = 1521)) (CONNECT_DATA=(SID=HR)) (HS=OK))
    OK (10 msec)

    2.5.建立DB link

    create public database link HRdbLink connect to sa identified by "admin_123" using 'HR';

    2.6 测试

    SQL> select 1 from dual@HRdbLink;
    
    1
    
    ----------
    
    1

    三、遇到的错误

    错误1:initdg4msql.ora错误

    [SQL]Select 1 from dual@HRdbLink
    [Err] ORA-28545: 连接代理时 Net8 诊断到错误
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: 紧接着 2 lines (起自 HRDBLINK)

    原因:

    D:Oracleproduct11.2.0 g_1dg4msqladmininitdg4msql.ora的HS_FDS_CONNECT_INFO值配置错误

    错误2.透明网关的监听卡住,无法重启

    相关进程没有彻底关闭,杀掉相关进程 如dg4msql.exe

    参考:

    https://docs.oracle.com/cd/B28359_01/gateways.111/b31043/conf_sql.htm

  • 相关阅读:
    【前端积累】Awesome初识
    【Python系列】Python3获取控制台输入
    【linux系列】Centos下安装mysql数据库
    Intellij 部署项目java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    【大数据系列】节点的退役和服役[datanode,yarn]
    【大数据系列】使用api修改hadoop的副本数和块大小
    【规范】alibaba编码规范阅读
    【大数据系列】hadoop上传文件报错_COPYING_ could only be replicated to 0 nodes
    【分布式系列之ActiveMq】ActiveMq入门示例
    类的生命周期
  • 原文地址:https://www.cnblogs.com/xqzt/p/5688659.html
Copyright © 2011-2022 走看看