ORACLE 连接SQLSERVER 数据库备忘
2016-12-11 18:12
357 查看
最近工作需要,要从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对应一个初始化参数文件。
首先必须配置这个参数文件。
里边
其他参数可以采用默认值。。
3. 配置监听器 ,修改listener.ora 文件,这个文件在这里 :
在配置文件中增加:
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,,
4、配置tnsnames.ora,路径在这里 :
需要修改的就是SID=...
在这里,一定注意有个坑~~~~~,,对于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;
基本资料网上都可以搜很多,官网配置说明在这里
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。 可以参考下的样例文件listener.ora.sample。[/code]ORACLE_HOME[code]\dg4msql\admin
在配置文件中增加:
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.0\dbhome_1) (SID_NAME = mydb) ) #GateWay (SID_DESC = (SID_NAME = dg4msql) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (PROGRAM = dg4msql) ) #GateWay (SID_DESC = (SID_NAME = rsdata) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (PROGRAM = dg4msql) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) ) 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=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;
相关文章推荐
- 【oracle】Enterprise Manager 无法连接到数据库实例。下面列出了组件的状态---个人解决方案
- oracle中监控表中的索引是否使用
- ORACLE性能测试
- OAF 系列教程 一 Jdev的安装及配置
- PLSQL连接错误:Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- sql server2014切换到oracle12c
- Oracle的存储过程
- 异构平台同步(Mysql到Oracle)
- oracle UGA分布示意图
- Oracle数据库中日期格式的转换
- oracle
- Linux下创建Oracle表空间 用户 授权
- 写一个oracle的sequence 从100开始 到99999结束 每次增长为2
- oracle中varchar2转换成clob
- win7下安装Oracle11G
- Oracle这个名字的由来
- Oracle 安装后 8080和80端口被占用的解决办法
- Oracle数据库远程连接
- Oracle 笔记
- Oracle升级前备份和失败回退