Oracle连接sqlserver与反向连接
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle连接sqlserver与反向连接一.简单业务描述:
在现有企业的信息系统中存在着大量的异构数据库,如ORACLE/SQL SERVER等,那么在进行系统之间的数据整合过程中,将不可幸免的涉及到异构数据库之间的透亮/无逢的数据访咨询。
本文章将结合广钢ERP系统的后台ORACLE数据库与检斤系统的后台SQLSERVER数据库的透亮网关的配置和访咨询。
二.简单技术描述:
在ORACLE 中提供了与其他数据库连接的组件,如与SQLSERVER/ DB2等,在安装了组件之后将能够通过配置监听器/数据库连接等来完成数据库之间的访咨询。
其中要紧用到:透亮网关代理、异类服务(Heterogeneous Services)数据库服务器情形:ORACLE 数据库地址:10.1.70.214 数据库SID:LTDDB
SQLSERVER 数据库地址:10.1.70.185 数据库名:jjdtest 用户名:SA
三.具体实现步骤:
透亮网关的安装:
注意:
透亮网关能够不安装在与ORACLE数据库同台机器上,然而因为它是安装数据库的一部分,因此在安装网关的同时将会安装数据库,因此如果不是专门情形,能够将透亮网关安装在数据库服务器上。
安装过程中能够同时配置远程数据库的地址和数据库名。
配置网关初始参数文件:
注意:
透亮网关SID:访咨询异构数据库是一个数据库事例,类似于一个数据库,因此,必须提供一个网关的SID,缺省为:tg4msql。
其配置文件将以i ni<sid>.ora来命名,存放在%ORACLE_HOME%\tg4msql\admin\下。
如果自己指定SID或者配置多个数据库网关能够直截了当在生成的配置文件中直截了当修改即可,然而必须遵守ini<sid>.ora的命名原则。
配置ini<sid>.ora的参数:HS_FDS_CONNECT_INFO=SQLSERVER_H OSTNAME.DATABASE_NAME.
举例:
HS_FDS_CONNECT_INFO="SERVER=10.1.70.185;D ATABASE=jjdtest"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
为透亮网关配置网络监听器:
注意:
oracle通过tns监听客户端的连接要求,因此tns监听必须与透亮网关配置在同一机器上,因此更加需要网关与数据库安装在同一服务器上。
tns配置文件的位置:%ORACLE_HOME%\NETWORK\ADMIN\LIST ENER.ORA.
需要加入参数:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = GATEW AY_SID)
(ORACLE_HOME = ORACLE_HOME_DIRECTORY)
(PROGRAM = tg4msql)
)
举例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.70.214)(P ORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = tg4msql)
(ORACLE_HOME = E:\oracle\ora92)
(PROGRAM = tg4msql)
)
(SID_DESC =
(GLOBAL_DBNAME = rmdb)
(ORACLE_HOME = E:\oracle\ora92)
(SID_NAME = rmdb)
)
)
如果有多个网关,红字部分连续添加。
重启gateway的监听,在服务中,重启:oracleoraclehome9itnslistener服务。
(凡增加数据库的必须重启)
配置tnsname.ora配置文件:
注意:
本配置文件配置的是:oracle数据库与透亮网关的透亮访咨询。
必须以手工方式修改配置文件。
%oracle_home%\network\admin\tnsna me.ora
参数:
connect_descriptor =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host_nam e)(PORT = oracle_port_num))
)
(CONNECT_DATA =
(sid = gateway_sid) )
(hs=ok)
)
举例:
tg4msql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.70.214)(PO RT = 1521))
)
(CONNECT_DATA =
(sid = tg4msql))
(hs=ok)
)
测试tns:tnsping tg4msql 测试成功将返回连接成功ok。
建立数据库连接:
注意:
在建立了透亮网关的连接后,必须建立数据库与透亮网关的数据库连接,以后所有访咨询远程数据库的连接都将通过数据库连接进行。
语法:
create [public] database link dblikename
connect to mssql_database_username identifid by password
using connect_descriptor
例子:
访咨询异构数据库:
例子:select * from trn_ggmisjjd@linkformssql;
注意:如果指定查询的字段则必须在将字段用“”
如:select "ph" from trn_ggmisjjd@linkformssql
四.总结:
在当前的企业信息化建设过程中,企业原有数据库与新建系统数据库之间的数据交换、数据访咨询、数据共享将是一个头痛的咨询题。
ORACL E中提供了与多个异构数据库之间的网关,通过如此的网关达到访咨询异构数据库的目的,将会专门好的解决异构数据库共享的咨询题。
SQLServer访咨询Oracle配置
同样需要作以上配置
指向Oracle的连接
假设Oracle数据库的用户名为test,密码为test,在SQL Server数据库所在服务器上建立的指向Oracle数据库的服务命名为hisorcl.
1). 在SQL Server的企业治理器中的对象资源治理器中,展开“服务器对象”,在“链接服务器”上右击,选“新建链接服务器”。
如下图所示进行配置。
通过连接查询Oracle数据库中的数据
select*from openquery(TEST_ORA,'SELECT*FROM BA SEMETADATA_DEPARTMENT')
使用下面的那个方法会报“……为列提供的元数据不一致……”的错误信息。
SELECT*FROM TEST_ORA..TEST.BASEMETADATA_DEPART MENT
通过连接向Oracle中的表插入数据
INSERT OPENQUERY(TEST_ORA,'select DepartmentId,DeptNam e,DeptCode from BaseMetaData_Department')
select DepartmentId,DeptName,DeptCode from BaseMetaData_Departme nt。