Oracle 11g透明网关连接Sqlserver
2016-11-09 00:00
567 查看
Oracle 11g透明网关连接Sqlserver
oracle 透明网关是oracle连接异构数据库提供的一种技术。通过Gateway,可以在Oracle里透明的访问其他不同的数据库,如SQL Server, DB2, Sybase等等,就像远程Oracle数据库一样。配置后的sql查询的处理流程
一、环境信息
Oracle11gIP地址 | 172.17.84.29 |
Oracle根目录 | /u01/oracle/app/product/11.2.0/dbhome_1 |
Oracle端口 | 1521 |
IP地址 | 172.17.22.230 |
gateway11根目录 | D:\product\11.1.0\tg_1 |
gateway端口 | 1521 |
SID | HR |
IP地址 | 172.17.22.230 |
数据库名 | HR |
用户名 | sa |
密码 | admin_123 |
二、Oracle透明网关配置
2.1. gateway安装
解压linux.x64_11gR2_gateways.zip,运行setup安装即可,这里我们将透明网关和SQLServer数据库安在了一台服务器上。下一步,填写SQLServer数据库服务器主机名,如:172.17.22.230;数据库名称:HR
安装完后,会弹出配置监听界面,因为我们要手工配置,点击取消即可。
安装完Gateway软件后,在ORACLE_HOME目录(D:\product\11.2.0\tg_1)下有一下dg4msql的目录,这就是Gateway软件的目录了。
2.2. 透明网关层[b]配置的SID信息,指明要访问的MSSQL数据库[/b]
在D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora目录下有一个initdg4msql.ora的文件。该文件是Gateway的初始参数文件,描述连接的是哪个SQL Server数据库。该文件的格式是initSID.ora,这里的SID在后面需要用到,系统默认的是dg4msql,一般情况这样就可以了。如果改名,如使用HR作为SID,则文件名变成initHR.ora。文件内容如下# This is a customized agent init file that contains the HS parameters # that are needed for the Database Gateway for Microsoft SQL Server # # HS init parameters # HS_FDS_CONNECT_INFO=[172.17.22.230]//HR HS_FDS_TRACE_LEVEL=OFF HS_FDS_RECOVERY_ACCOUNT=RECOVER HS_FDS_RECOVERY_PWD=RECOVER
只要修改HS_FDS_CONNECT_INFO参数就可以了。格式是:[hostname:port]/serverinstance/databasename,其中hostname是机器名称或IP,PORT是SQL Server的端口号,SQL Server2005默认为1433.serverinstance是SQL Server的实例名,一般空着就行。Databasename是SQL Server的数据库名。因为我们在安装过程中指定了主机名和数据库名,这里已经有信息了。
2.3. [b]透明网关层配置监听器,处理oracle的查询请求[/b]
透明网关层的监听配置文件: D:\Oracle\product\11.2.0\tg_1\NETWORK\ADMIN\listener.ora这里PROGRAM指定应用程序名称,因为实例配置文件在D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora,所以PROGRAM不能改变, SID_NAME就是前面init.ora文件名里指定的SID
# listener.ora Network Configuration File: D:\product\11.2.0\tg_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = HR) (PROGRAM = dg4msql) (SID_NAME = HR) (ORACLE_HOME = D:\product\11.2.0\tg_1) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.22.230)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = D:\product\11.2.0\tg_1
启动监听
C:\Users\Administrator>lsnrctl start LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 20-7月 -2016 15:0 8:31 Copyright (c) 1991, 2010, Oracle. All rights reserved. 启动tnslsnr: 请稍候... TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production 系统参数文件为D:\product\11.2.0\tg_1\network\admin\listener.ora 写入d:\product\11.2.0\tg_1\diag\tnslsnr\WIN-158KFV5FSBR\listener\alert\log.xml的 日志信息 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.17.22.230)(PORT=1521))) 监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.22.230)(PORT=1521))) LISTENER 的 STATUS ------------------------ 别名 LISTENER 版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ ction 启动日期 20-7月 -2016 15:08:47 正常运行时间 0 天 0 小时 0 分 3 秒 跟踪级别 off 安全性 ON: Local OS Authentication SNMP OFF 监听程序参数文件 D:\product\11.2.0\tg_1\network\admin\listener.ora 监听程序日志文件 d:\product\11.2.0\tg_1\diag\tnslsnr\WIN-158KFV5FSBR\li stener\alert\log.xml 监听端点概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.17.22.230)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) 服务摘要.. 服务 "HR" 包含 1 个实例。 实例 "HR", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 命令执行成功 C:\Users\Administrator>
也可以去windows的服务中查看OracleOraGtw11g_home1TNSListener是否已经启动
2.4 Oracle服务器配置tns
在需要建立dblink的Oracle数据库所在服务器,配置/u01/oracle/app/product/11.2.0/dbhome_1/network/admin/tnsnames.oraHR = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.22.230)(PORT = 1521)) (CONNECT_DATA=(SID=HR)) (HS=OK) )
测试tns
[oracle@elearningtest admin]$ tnsping HR TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 20-JUL-2016 15:14:22 Copyright (c) 1997, 2013, Oracle. All rights reserved. Used parameter files: /u01/oracle/app/product/11.2.0/dbhome_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =172.17.22.230)(PORT = 1521)) (CONNECT_DATA=(SID=HR)) (HS=OK)) OK (10 msec)
2.5.建立DB link
create public database link HRdbLink connect to sa identified by "admin_123" using 'HR';
2.6 测试
SQL> select 1 from dual@HRdbLink; 1 ---------- 1
三、遇到的错误
错误1:[b]initdg4msql.ora错误[/b]
[SQL]Select 1 from dual@HRdbLink [Err] ORA-28545: 连接代理时 Net8 诊断到错误 Unable to retrieve text of NETWORK/NCR message 65535 ORA-02063: 紧接着 2 lines (起自 HRDBLINK)
原因:
D:\Oracle\product\11.2.0\tg_1\dg4msql\admin\initdg4msql.ora的HS_FDS_CONNECT_INFO值配置错误
错误2.透明网关的监听卡住,无法重启
相关进程没有彻底关闭,杀掉相关进程 如dg4msql.exe参考:
https://docs.oracle.com/cd/B28359_01/gateways.111/b31043/conf_sql.htm相关文章推荐
- Oracle 11g透明网关连接Sqlserver 2000(转)
- Oracle 11g透明网关连接Sqlserver
- Oracle 11g透明网关连接Sqlserver 2000
- Oracle 11g透明网关连接Sqlserver 2000
- Oracle 11g透明网关连接Sqlserver
- Oracle 11g透明网关连接Sqlserver 2000
- Oracle 11g透明网关连接Sqlserver 2000
- Oracle 11g透明网关连接Sqlserver 2000
- oracle 通过透明网关gateway 连接sqlserver
- Oracle 配置transparent gateway(透明网关)连接sqlserver数据库(gateway安装在sqlserver服务器)
- Oracle 11g R2通过透明网关连接DB2 详细步骤
- Oracle 11g 透明网关连接mssql2008r2数据库
- 10G 11GOracle 透明网关访问 sqlserver
- oracle 11g 透明网关(oracle --> sqlserver)
- Oracle 11g透明网关连接sybase及sqlserver数据库(网关数据库分开)
- oracle 10g 连接 sqlserver---透明网关
- Oracle中使用透明网关链接到Sqlserver(转)
- Oracle 11g 透明网关
- ORACLE 11g 透明网关 for SQL Server 安装配置
- ORACLE 11G透明网关访问SQL2008R2