《oracle连接sqlserver与反向连接》由会员分享,可在线阅读,更多相关《oracle连接sqlserver与反向连接(8页珍藏版)》请在金锄头文库上搜索。
1、Oracle与sqlserver透明网关配置 编写:陈命群Oracle 访问 sqlserver 透明网关配置说明 编写人:陈命群一简单业务描述:在现有企业的信息系统中存在着大量的异构数据库,如ORACLE/SQLSERVER等,那么在进行系统之间的数据整合过程中,将不可避免的涉及到异构数据库之间的透明/无逢的数据访问。本文章将结合广钢ERP系统的后台ORACLE数据库与检斤系统的后台SQLSERVER数据库的透明网关的配置和访问。二简单技术描述:在ORACLE 中提供了与其他数据库连接的组件,如与SQLSERVER/DB2等,在安装了组件之后将可以通过配置监听器/数据库连接等来完成数据库之间
2、的访问。其中主要用到:透明网关代理、异类服务(Heterogeneous Services)数据库服务器情况:ORACLE 数据库地址:10.1.70.214 数据库SID:LTDDB SQLSERVER 数据库地址:10.1.70.185 数据库名:jjdtest 用户名:SA三具体实现步骤:1 透明网关的安装:注意:(1) 透明网关可以不安装在与ORACLE数据库同台机器上,但是因为它是安装数据库的一部分,所以在安装网关的同时将会安装数据库,所以如果不是特殊情况,可以将透明网关安装在数据库服务器上。(2) 安装过程中可以同时配置远程数据库的地址和数据库名。2 配置网关初始参数文件:注意:(
3、1) 透明网关SID:访问异构数据库是一个数据库事例,类似于一个数据库,所以,必须提供一个网关的SID,缺省为:tg4msql。其配置文件将以ini.ora来命名,存放在%ORACLE_HOME%tg4msqladmin下。(2) 如果自己指定SID或者配置多个数据库网关可以直接在生成的配置文件中直接修改即可,但是必须遵守ini.ora的命名原则。(3) 配置ini.ora的参数:HS_FDS_CONNECT_INFO=SQLSERVER_HOSTNAME.DATABASE_NAME.(4) 举例: HS_FDS_CONNECT_INFO=SERVER=10.1.70.185;DATABASE
4、=jjdtestHS_FDS_TRACE_LEVEL=OFFHS_FDS_RECOVERY_ACCOUNT=RECOVERHS_FDS_RECOVERY_PWD=RECOVER3 为透明网关配置网络监听器:注意:(1) oracle通过tns监听客户端的连接请求,所以tns监听必须与透明网关配置在同一机器上,所以更加需要网关与数据库安装在同一服务器上。(2) tns配置文件的位置:ORACLE_HOMENETWORKADMINLISTENER.ORA.(3) 需要加入参数:SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = GATEW
5、AY_SID) (ORACLE_HOME = ORACLE_HOME_DIRECTORY) (PROGRAM = tg4msql) ) (4) 举例:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.70.214)(PORT = 1521) ) ) )SID_LIST_LISTENER = (SID_LIST = (SI
6、D_DESC = (SID_NAME = tg4msql) (ORACLE_HOME = E:oracleora92) (PROGRAM = tg4msql) ) (SID_DESC = (GLOBAL_DBNAME = rmdb) (ORACLE_HOME = E:oracleora92) (SID_NAME = rmdb) ) )(5) 如果有多个网关,红字部分继续添加。(6) 重启gateway的监听,在服务中,重启:oracleoraclehome9itnslistener服务。(凡增加数据库的必须重启)4 配置tnsname.ora配置文件:注意:(1) 本配置文件配置的是:orac
7、le数据库与透明网关的透明访问。(2) 必须以手工方式修改配置文件。oracle_homenetworkadmintnsname.ora(3) 参数:connect_descriptor = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host_name)(PORT = oracle_port_num) ) (CONNECT_DATA = (sid = gateway_sid) ) (hs=ok) )(4) 举例:tg4msql = (DESCRIPTION = (ADDRESS_LIST =
8、 (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.70.214)(PORT = 1521) ) (CONNECT_DATA = (sid = tg4msql) (hs=ok) )(5) 测试tns:tnsping tg4msql 测试成功将返回连接成功ok。5 建立数据库连接:注意:(1) 在建立了透明网关的连接后,必须建立数据库与透明网关的数据库连接,以后所有访问远程数据库的连接都将通过数据库连接进行。(2) 语法:create public database link dblikenameconnect to mssql_database_username
9、identifid by passwordusing connect_descriptor(3) 例子: create public database link LINKFORMSSQL.US.ORACLE.COM connect to SA using tg4msql;6 访问异构数据库:例子:select * from trn_ggmisjjdlinkformssql;注意:如果指定查询的字段则必须在将字段用“”如:select ph from trn_ggmisjjdlinkformssql四总结:在当前的企业信息化建设过程中,企业原有数据库与新建系统数据库之间的数据交换、数据访问、数据
10、共享将是一个头痛的问题。ORACLE中提供了与多个异构数据库之间的网关,通过这样的网关达到访问异构数据库的目的,将会很好的解决异构数据库共享的问题。SQLServer访问Oracle配置1. 同样需要作以上配置2. 指向Oracle的连接假设Oracle数据库的用户名为test,密码为test,在SQL Server数据库所在服务器上建立的指向Oracle数据库的服务命名为hisorcl.1). 在SQL Server的企业管理器中的对象资源管理器中,展开“服务器对象”,在“链接服务器”上右击,选“新建链接服务器”。如下图所示进行配置。通过连接查询Oracle数据库中的数据select*fro
11、mopenquery(TEST_ORA,SELECT*FROMBASEMETADATA_DEPARTMENT)使用下面的这个方法会报“为列提供的元数据不一致”的错误信息。SELECT*FROMTEST_ORA.TEST.BASEMETADATA_DEPARTMENT通过连接向Oracle中的表插入数据INSERTOPENQUERY(TEST_ORA,selectDepartmentId,DeptName,DeptCodefromBaseMetaData_Department)selectDepartmentId,DeptName,DeptCodefromBaseMetaData_Department