zoukankan      html  css  js  c++  java
  • ORACLE 连接SQLSERVER 数据库备忘

    最近工作需要,要从SQL SERVER数据库中同步提取数据。 这里采用了  Oracle Gateway 来连接,折腾了半天,终于搞定,记录下已备下次使用。

    基本资料网上都可以搜很多,官网配置说明在这里

    http://docs.oracle.com/cd/B28359_01/gateways.111/b31043/conf_sql.htm#CIHGADGB

    1、下载安装 GateWay,,这里省略,采用默认安装就可以了。

    2、配置 SID 参数文件。

      每一个GateWay 实例 都对应一个SID。默认的 SID 是 dg4msql ,如果是配置多个连接,就需要用不同的SID,同样的每个SID对应一个初始化参数文件。

    首先必须配置这个参数文件。

     这个文件默认在这里:  ORACLE_HOMEdg4msqladmininitdg4msql.ora
    注意:ORACLE_HOME 是oracle的安装目录。
    dg4msqladmin”是固定的,初始化参数文件必须放在这个目录下。
    “initdg4msql.ora"是参数文件。如果用不同的SID ,则修改为“init"+SID+".ora" ..
     初始化参数文件内容:
      HS_FDS_CONNECT_INFO= host_name/[instance_name][/database_name]

     

       里边  instance_name 和database_name 都是可选的. 如果instance_name 没有 但指定了database_name  , 必须用两个”/",就像这样

       HS_FDS_CONNECT_INFO= host_name//database_name
    
       其他参数可以采用默认值。。
     
    3. 配置监听器 ,修改listener.ora 文件,这个文件在这里 :ORACLE_HOME etworkadmin。 可以参考ORACLE_HOMEdg4msqladmin 下的样例文件listener.ora.sample。

      在配置文件中增加:

    SID_LIST_LISTENER=
      (SID_LIST=
      (SID_DESC=
      (SID_NAME=dg4msql)
      (ORACLE_HOME=E:appAdministratorproduct11.2.0dbhome_1)
      (PROGRAM=dg4msql)
      )
      )

    配置好的文件 看起来是这样的。。注意里边的SID_NAME,,

     (PROGRAM = dg4msql) 这个不能改。
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = jwdb)
          (ORACLE_HOME = E:appAdministratorproduct11.2.0dbhome_1)
          (SID_NAME = mydb)
        )
        #GateWay
         (SID_DESC =
          (SID_NAME = dg4msql)
          (ORACLE_HOME = E:appAdministratorproduct11.2.0dbhome_1)
          (PROGRAM = dg4msql)
        )
        #GateWay
         (SID_DESC =
          (SID_NAME = rsdata)
          (ORACLE_HOME = E:appAdministratorproduct11.2.0dbhome_1)
          (PROGRAM = dg4msql)
        )
     )
     
     
    
     
    
    LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
      )
    
    ADR_BASE_LISTENER = E:appAdministrator

    4、配置tnsnames.ora,路径在这里 :ORACLE_HOME etworkadmin,样例文件可以在这里找到。ORACLE_HOMEdg4msqladmin 

    dg4msql  =
      (DESCRIPTION=
        (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
        (CONNECT_DATA=(SID=dg4msql))
        (HS=OK)
      ) 

     需要修改的就是SID=...

    JWDB =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = jwdb)
    
        )
      )
    
    DG4MSQL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST =  xxx.xxx.xxx.xxx)(PORT = 1521))
        )
        (CONNECT_DATA =      (SID = dg4msql)
        )
        (HS = OK)
      )
    RSDATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST =  xxx.xxx.xxx.xxx)(PORT = 1521))
        )
        (CONNECT_DATA =      (SID = rsdata)
        )
        (HS = OK)
      )
     

    在这里,一定注意有个坑~~~~~,,对于Oracle配置文件的。

    主要是命名配置的格式错误。

     在Oracel解析tnsname.ora文件中的命名信息时,是要求其满足一些基本规则的。从目前我们探索的情况看,两个规则是必须的:

            本地命名必须顶格书写在tnsname.ora中定义的本地连接名称(如:wilson),要求一定是顶行书写的;

           嵌套括号非顶格规则:在各个嵌套括号中,只有最外层的括号是允许顶行书写,其他都不允许书写;

     否则就会报错!!!

    说明:当服务名在tnsname.ora中非顶格书写时,Oracle不能正确解析该名称。

     

    5、重启监听器、测试

        1)命令行下面执行,lsnrctl ,进入监听管理器

        2)执行reload 重新加载监听器

       3)执行 status 查看状态

    4)quit 退出

    5) 使用 tnsping 命令检测。。。   

              tnsping dg4msql 

         如果返回OK 则配置正常。

    6、创建连接

       CREATE DATABASE LINK rsdata  CONNECT TO "username" IDENTIFIED BY "userpassword"     USING 'RSDATA';

    7、测试

        select * from aaa@rsdata;

     说明可以使用了。

    8、直接执行对应的查询操作。。。 在这里一定注意 ORACLE 中字段名和表名默认大写。 如果表明或者字段名有小写字符,请 用双引号。

    如:select * from "Bys2015”@rsdata;

     


      

  • 相关阅读:
    Flask第二篇——服务器相关
    Flask第一篇——URL详解
    Appium 定位方法例子(4)
    selenium 上传文件方法补充——SendKeys、win32gui
    Appium+python (3) 异常处理
    Appium+python (3) 元素定位(1)
    "http://127.0.0.1:4723/wd/hub"的解释
    Appium + Python App自动化(2)第一个脚本
    Appium+python(1)简单的介绍环境搭建
    用fiddler设置手机代理
  • 原文地址:https://www.cnblogs.com/abin30/p/6160121.html
Copyright © 2011-2022 走看看