最近工作需要,要从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_HOME\dg4msql\admin\initdg4msql.ora
注意:ORACLE_HOME 是oracle的安装目录。
“dg4msql\admin”是固定的,初始化参数文件必须放在这个目录下。
“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\network\admin。 可以参考ORACLE_HOME\dg4msql\admin 下的样例文件listener.ora.sample。

  在配置文件中增加:

SID_LIST_LISTENER=
  (SID_LIST=
  (SID_DESC=
  (SID_NAME=dg4msql)
  (ORACLE_HOME=E:\app\Administrator\product\11.2.0\dbhome_1)
  (PROGRAM=dg4msql)
  )
  )

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

 (PROGRAM = dg4msql) 这个不能改。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = jwdb)
(ORACLE_HOME = E:\app\Administrator\product\11.2.\dbhome_1)
(SID_NAME = mydb)
)
#GateWay
(SID_DESC =
(SID_NAME = dg4msql)
(ORACLE_HOME = E:\app\Administrator\product\11.2.\dbhome_1)
(PROGRAM = dg4msql)
)
#GateWay
(SID_DESC =
(SID_NAME = rsdata)
(ORACLE_HOME = E:\app\Administrator\product\11.2.\dbhome_1)
(PROGRAM = dg4msql)
)
) LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = ))
) ADR_BASE_LISTENER = E:\app\Administrator

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

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

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

JWDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = ))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jwdb) )
) DG4MSQL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = ))
)
(CONNECT_DATA = (SID = dg4msql)
)
(HS = OK)
)
RSDATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = ))
)
(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;


ORACLE 连接SQLSERVER 数据库备忘的更多相关文章

  1. ORACLE连接SQLSERVER

    一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...

  2. 字符串格式连接sqlserver数据库的字段概念解释

    以连接sqlserver数据库举例说明如:“Provider=SQLOLEDB.1;Password=******;Persist Security Info=True;User ID=sa;Init ...

  3. jsp连接sqlServer数据库教程

    一.首先讲下我用的工具版本以供参考: jar包:jtds1.3.1.jar  下载地址:点击进入 数据库:SQL Server2012 服务器:Tomcat8.0   下载地址:点击进入 开发IDE工 ...

  4. 使用thinkphp连接sqlserver数据库时提示“系统不支持:sqlsrv”

    习惯了使用php跟mysql组合,现在接到项目需要调用客户线下的系统软件的数据,具了解,这个软件的数据库是用sqlserver数据库也就是常说的mssql数据库了. 那么我现在需要用PHP连接sqls ...

  5. asp.net 连接sqlserver数据库

    在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面 ...

  6. SQLServer-----使用jTDS连接SQLServer数据库

    一.jTDS一个简短的引论 jTDS100%纯Java实现的JDBC3.0驱动,它用于连接 Microsoft SQL Server(6.5.7.2000,2005,2008 和 2012)和Syba ...

  7. Jmeter连接SqlServer数据库进行压力测试

    Jmeter连接SqlServer数据库进行压力测试 前提准备:先安装jdbc驱动 驱动下载链接地址:http://pan.baidu.com/s/1bpDpjSr 密码:v6tn 下载解压之后,讲s ...

  8. python连接sqlserver数据库

    1.准备工作 python3.6连接sqlserver数据库需要引入pymssql模块 pymssql官方:https://pypi.org/project/pymssql/ 没有安装的话需要: pi ...

  9. JavaWeb连接SQLServer数据库并完成一个登录界面及其功能设计。

    一.JDBC连接SQLserver数据库的步骤: 1.下载SQLserver的JDBC驱动文件——Microsoft JDBC Driver 4.0 for SQL Server 2.例如下载得到的文 ...

随机推荐

  1. webstorm vue高亮

    文件->设置->文件类型 第一步 第二步选择html 添加*.vue 搞定

  2. 使用AFNetWorking读取JSON出现NSCocoaErrorDomain Code=3840的解决方法

    最近在使用AFNetworkWorking读取JSON时,出现了NSCocoaErrorDomain Code=3840的错误.这种错误应该是服务器端返回JSON格式不对造成的.通过Google搜到这 ...

  3. 理解#define offsetof(struct_t,member) ((int)&((struct_t *)0)->member)

    #define offsetof(struct_t,member) ((int)&((struct_t *)0)->member) 这个东西很多人应该知道: offsetof是用来判断结 ...

  4. 复旦高等代数 II(15级)思考题

    1.设 $f(x)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$ 是整系数首一多项式, 满足: $|a_0|$ 是素数且 $$|a_0|>1+\sum_{i=1}^{n ...

  5. HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容

    今天把一个.NET的网站部署到IIS上打开网页的时候出现了这个错误,刚开始以为是没有配置默认页,但是直接打开固定的页面地址也不行. 于是怀疑是.NET版本的问题,但是看了一下程序的目标框架是4.0没错 ...

  6. jquery.validate 使用--验证表单隐藏域

    jQuery validate很不错的一个jQuery表单验证插件.升级到了1.9版的后,发现隐藏表单域验证全部失效,特别是在jquery.ui.tabs.min.js构造的Tabs里的验证. 是因为 ...

  7. touch — 设定文件的访问和修改时间

    PHP touch 设定文件的访问和修改时间 touch (PHP 4, PHP 5) touch — 设定文件的访问和修改时间 说明 bool touch ( string $filename [, ...

  8. 如果你恨一个程序员 忽悠他去做iOS开发(戏谑篇)

    .state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow ...

  9. Lambda表达式入门

    Lambda表达式是Java 8的重要更新,也是一个被广大开发者期待已久的新特性,Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接 ...

  10. windows下如何安装和启动MySQL

    1.下载,解压到自己喜欢的目录 2.配置环境变量.MYSQL_HOME,值为mysql的根目录:在path中添加%MYSQL_HOME%/bin目录. 3.向windows注册mysql服务.必须用管 ...