前言

使用Transparent Gateway(透明网关),建立ORACLE与SQLServer的连接。

实现功能:在ORACLE中查询SQLServer数据库的内容。

注:网上有ORACLE和SQLServer不在同一服务器中的安装步骤。本文是ORACLE、SQLServer、透明网关都在同一服务器的场景。

一、环境信息

SQLServer2008(Window server 2008 R2)

标题 内容
IP地址 162.16.161.98

Oracle11g(Window server 2008 R2)

标题 内容
IP地址 162.16.161.98
Oracle端口 1521

Oracle gateway (Window server 2008 R2)

标题 内容
IP地址 162.16.161.98
Gateway根目录 E:\app\Administrator\product\11.1.0\tg_2
Gateway端口 1522(默认是1521,因为本机Oracle数据库已使用此端口,所以需要改一下)
SID Demo0707

二、Transparent Gateway安装

启动安装程序:

指定安装目录:

选择组件:

填写SQL Server数据库详细信息:

主机名填写SQL Server数据库IP地址,若SQL Server数据库和透明网关安装在同一台服务器上,可以填【.】。

数据库名称填写需要连接的SQL Server数据库名称。

注:【本页可以不填,之后在配置文件进行配置】

点击安装:



安装完Gateway后,会自动弹出配置监听界面。我们不配置监听,点击取消后安装完毕。

三、修改配置文件

指明要访问的MSSQL数据库(修改initdg4msql.ora)

在网关安装目录(E:\app\Administrator\product\11.1.0\tg_2\dg4msql\admin)

找到initdg4msql.ora文件。

该文件是Gateway的初始参数文件,描述的是连接哪个SQL Server数据库。该文件的格式是init【SID】.ora,SID可以根据需要自定义。

系统默认的SID为dg4msql(Oracle Database Gateway for MS SQL Server)。

这里我们将SID改为Demo0707,则修改后的文件名为initDemo0707.ora。

我们将文件内容修改为:

HS_FDS_CONNECT_INFO=[162.16.161.98]//Demo0707
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

注意:HS_FDS_CONNECT_INFO为之前安装网关时配置的SQL Server数据库信息,若之前没有填写配置信息,此时需要手动配置。

格式为:

HS_FDS_CONNECT_INFO =

[数据库IP地址,端口号(默认1433)]/实例名称(可空)/ 数据库名称

配置监听器,处理oracle的查询请求(修改listener.ora)

配置监听器,处理oracle的查询请求(修改listener.ora)

在网关安装目录下(E:\app\Administrator\product\11.1.0\tg_2\NETWORK\ADMIN)

找到listener.ora文件。

该文件是监听器配置文件。修改为:

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Demo0707)
(PROGRAM = dg4msql)
(SID_NAME = Demo0707)
(ORACLE_HOME = E:\app\Administrator\product\11.1.0\tg_2)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 162.16.161.98)(PORT = 1522))
)
)

参数说明

1.PROGRAM:

因为实例配置文件在E:\app\Administrator\product\11.1.0\tg_2\dg4msql\admin\initdg4msql.ora,所以PROGRAM不能改变。

2.SID_NAME:

就是我们前面init.ora文件名里指定的SID。

3.GLOBAL_DBNAME:

和SID_NAME保持一致即可。

4.ORACLE_HOME:

透明网关安装路径。

5.LISTENER段:

(ADDRESS = (PROTOCOL = TCP)(HOST = 162.16.161.98)(PORT = 1522))

此处配置安装网关时未配置的监听端口和协议。

这里使用TCP协议,1522端口。(默认是1521,因为本机Oracle数据库已使用此端口,所以需要改一下)。

Oracle服务器配置tns文件

打开Oracle的tnsnames.ora文件

E:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN\tnsnames.ora

增加:

Demo0707=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST = 162.16.161.98)(PORT =1522)))(CONNECT_DATA =(SID=Demo0707))(HS=OK))

四、启动监听器

通过命令行启动

开始菜单>运行>cmd,输入

C:\Users\Administrator>lsnrctl start

通过可执行文件启动

透明网关根目录BIN文件夹内,执行LSNRCTL.exe。



执行start命令,出现如下界面,说明成功启动:

五、在ORACLE数据库中建立连接

打开PL/SQL或其他工具,连接ORACLE数据库后,执行:

create public database link dbkink connect to "SQL用户名" identified by "密码" using 'Demo0707';

参数说明:

1.dbkink:我们建立的与SQL Server数据库的连接名称。

2.Demo0707:我们之前配置的SID。

测试连接是否建立:

执行select 1 from dual@dbkink

若执行成功则说明连接已经建立。

六、出现的问题及解决方法

监听器启动失败

可能的原因是listener.ora配置文件格式有问题。查看是否有多余的空格,或左右括号数量。

最稳妥的方法是取消换行,分别把LISTENER段和SID_LIST_LISTENER段写在一行里,去除多余的空格。

监听器启动了但测试连接时报错

ORACLE数据库和透明网关配置在一台机器上时可能出现这个问题。

原因是命令行启动监听器时,lsnrctl命令的系统路径为ORACLE安装目录下的。导致我们配置的网关监听器设置没有生效。

解决方法是:使用4.2中的方法,执行网关目录下的LSNRCTL.exe文件,启动监听器。

Transparent Gateway的使用方法的更多相关文章

  1. Activity透明/半透明效果的设置transparent(两种实现方法)

    两种方法实现Activity透明/半透明效果的设置,代码思路很有调理,感兴趣的朋友可以参考下,希望本文可以帮助到你   方法一:res/values文件夹下建立styles.xml: 复制代码代码如下 ...

  2. discuz用户登录不响应,提示nginx gateway timeout解决方法

    在使用nginx+php-cgi搭建discuz论坛过程中,出现论坛登录不响应,一直提示nginx gateway timeout504网关超时,单单采用php方式登录无问题.但因需要使用nginx把 ...

  3. Linux的Transparent Hugepage与关闭方法

    Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变. 因为Transparent HugePages是在运 ...

  4. Nginx错误提示:504 Gateway Time-out解决方法

    朋友说504 Gateway Time-out的错误提示与nginx本身是没有任何关系的我们可以通过fastcgi配置参数的调整进行解 决. 修改 php-fpm 配置文件: 1.把 max_chil ...

  5. nginx+php测试时显示 502 bad gateway的解决方法

    http://www.apelearn.com/study_v2/chapter18.html 由于阿铭老师的PHP版本是 5.3的   我装了 5.5 测试出现了 502  错误 查看日志   借助 ...

  6. Nginx 502 Bad Gateway 错误的解决方法

    502 bad gateway 的解决方法 通用配置 proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; # ...

  7. paho_c_pub 使用方法

    Latest Paho Status (2) 摘自:http://modelbasedtesting.co.uk/ I last wrote about the state of Paho in Oc ...

  8. 解决 504 Gateway Time-out和502 Bad Gateway(nginx)

    504 Gateway Time-out 问题所在: 所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI. 一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓 ...

  9. 【AS3】Flash与后台数据交换四种方法整理

    随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...

随机推荐

  1. oracle rm -fr datafile 数据文件被误删的场景恢复(没有rman备份)

    环境: Linux release 7.5 oracle19c (无pdb,从11.2.0.4升级上去的) 一:单个非系统表空间的数据文件被删除 我先备份一下,虽然是测试环境. [oracle@19c ...

  2. 图解Python中深浅拷贝

    在工作中,常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改的问题.为了防止数据被修改,就需要在传递一个副本,即使副本被修改,也不会影响原数据的使用.为了生成这个副本,就产生了拷贝.今天就 ...

  3. Python之复制列表

    将一个列表的数据复制到另外一个列表中. 1 a = [1,2,3] #定义列表a 2 3 b = a[:] #将列表a的切片赋值给b,也可以理解为将b的值设置为a[:] 4 5 print(a) #打 ...

  4. pycharm的快捷键的使用

    作为未来的程序猿,快捷键对我们来说很重要,因为它方便且快捷,今天就给大家介绍pycharm中常用的快捷键 1.编辑: Ctrl + Space------------------基本的代码完成(类.方 ...

  5. (一)NumPy基础:数组和矢量计算

    一.创建ndarray 1.各种创建函数的使用 import numpy as np #创建ndarray #1.array方法 data1 = [[6, 7.5, 8, 0, 1], [2, 8, ...

  6. Django 的自我进化

    今天是基督文明的传统节日圣诞节.作为一名靠大乐透来实现买房买车梦想的社畜.怎么可能这么早享受节日时光.所以就久了下面这些文字.用来记录一下无聊的下午时光. 本片主要记录Django 中添加一些便利的c ...

  7. Java:利用BigDecimal类巧妙处理Double类型精度丢失

    目录 本篇要点 经典问题:浮点数精度丢失 十进制整数如何转化为二进制整数? 十进制小数如何转化为二进制数? 如何用BigDecimal解决double精度问题? new BigDecimal(doub ...

  8. 最全的Visual Studio Code配置及使用教程

    史上最全vscode配置使用教程 工欲善其事,必先利其器.想要优雅且高效的编写代码,必须熟练使用一款前端开发工具.但前端开发工具数不胜数,像HBuilder.Sublime Text.WebStorm ...

  9. win10 设置文件夹别名、修改文件夹图标、修改文件夹别名、英文目录和中文目录、设置文件夹中文名称、快捷访问显示设置中文

    最近在设置文件夹的时候发现个有趣的事情: 系统路径 C:\Users\Administrator  内的文件夹不仅有图标还显示中文名称,但是打开路径的时候显示的却是英文,这就激发了我的探索欲,究竟是为 ...

  10. python保存二维列表到txt文件,读取txt文件里面的数据转化为二维列表

    源码: # 读文件里面的数据转化为二维列表 def Read_list(filename): file1 = open(filename+".txt", "r" ...