`
jife123
  • 浏览: 91056 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ORACLE打开放火墙无法访问的解决办法

 
阅读更多

在数据库服务器上设置。

Oracle客户端连接服务器,首先去找1521监听端口,服务器的1521监听端口再向server process进程发出请求,
并返回一个随机端口,返回给客户端,客户端再来连接这个端口。 这样就给服务器上的防火墙设置带来了麻烦,
这个端口是随机的,如何开放?

windows 平台上的这个问题成了一大难题,很多论坛都有人问,但很少有人能解决。
unix平台不用担心,系统自动会解决这个问题.

Matalink上提供了三种解决办法,实际上USE_SHARED_SOCKET 是最有效最方便的。
LOCAL_MACHINESoftwareOracleHomeX
where X is your desired homedir.

但经过无数次实验,仍然没有成功,最后终于发现是Oracle 8.1.7的bug 需要打补丁,升级到Oracle 8.1.7.1.2

需要在MTS模式下(共享模式) Oracle默认是专用模式。
经试验发现,如果不在init文件中设参数的话,Oracle仍然会要求一个随机端口和1521端口来共同通讯,
只是这个随机端口,并不随客户端会话和登录的变化而变化,在没有重启服务器时,是固定的。

(试验发现,在专用模式下,每次连接,oracle服务器会按+1方式,提供一个非1521的端口。)
所以,还需要在init.ora文件的最后加上一条参数:
mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)"
这样才真正实现只用一个端口,穿过防火墙。

USE_SHARED_SOCKET = TRUE
- Oracle 8.1.6 for NT/2k HKEY_LOCAL_MACHINESOFTWAREORACLEHOME<#> (# is your desired homedir)
- Oracle 8.1.7.0.0 for NT/2k Doesn't work in Oracle 8.1.7.0.0 for NT/2k
- Oracle 8.1.7.1.2 for NT/2k HKEY_LOCAL_MACHINESOFTWAREORACLE

环境:win2000,oracle 9.2.0.1
方法一:在windows2000的注册表中,hkey_local_machinesoftwareoraclehome0下加入字符串值:
USE_SHARED_SOCKET=TRUE,即可
方法二:1、首先将数据库实例改为SHARED SERVER模式
2、以SYSDBA登录SQLPLUS,通过SQLPLUS生成系统当前的参数设置文件pfile:create pfile='d:init.ora' from spfile;
3、修改d:init.ora文件,在其中增加(用editplus编辑):*.service_names='your service name'和*.dispatchers='(address=(protocol=tcp)(host=localhost)(port=1521)(dispatchers=1)'
4、生成新的SPFILE:create spfile from pfile='d:init.ora';
5、重启动数据库。
6、在防火墙中开放1521端口。
方法三:在数据库端(也可以是另外的机器,但是cman的机器必须和数据库都在防火墙的后面)安装了cman的前提下,启动cman,然后开放防火墙端的1630端口(看cman开的是什么端口啦),最后在客户端的tnsnames.ora文件中添加:
cmantest = (description = (address_list = (address = <- first address is to CMAN (protocol=tcp) (host=hostname or ip of cman) (port=1610) ) (address= <- second address is to Listener (protocol=tcp) (host=hostname or ip of listener) (port=1521) ) ) (connect_data = (sid = sidname)) (source_route = yes)

安装完Windows版的Oracle 10G 后,开启了windows 2003自带的防火墙,发现在本机可以访问oracle数据库,
但在远程不能连接,一直都在报连接超时。关闭防火墙后,可以用远程连接Oracle 10G 数据库。但开启防火墙后,又不能连接,说明问题出在防火墙上,防火墙开启TCP 1521端口,仍然不能连接数据库。解决问题的办法如下:
1.如果是Oracle 8i ,修改注册表HKLMSoftwareOracle,增加一个字符串值USE_SHARED_SOCKET = TRUE。
2.如果是非Oracle 9i,打开%Oracle_Home%binoracle.key文件,按里面的路径HKLM增加一个字符串值USE_SHARED_SOCKET = TRUE。
3.增加以后重启机子让注册表生效。
如果是Linux下的Oracle,只要在防火墙中打开TCP 1521端口就可以连接了。

分享到:
评论

相关推荐

    在防火墙上开放Oracle服务端口的方法

     我们有的时候需要映射端口远程去访问Oracle数据库,这里有个防火墙的问题,在unix上没有问题,但是在win 平台上却无法正确访问,下面的可以解决这个问题,:  近来由于工作需要,在Windows XP平台上安装了...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    ORACLE之常用FAQ V1.0(整理)

    ORACLE之常用FAQ V1.0 4 第一部分、SQL&PL/SQL 4 [Q]怎么样查询特殊字符,如通配符%与_ 4 [Q]如何插入单引号到数据库表中 4 [Q]怎样设置事务一致性 4 [Q]怎么样利用游标更新数据 4 [Q]怎样自定义异常 4 [Q]十进制与...

    Loadrunner报错日志

    问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法: 1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量...

    管理信息系统数据库安全体系设计(1).doc

    为了方便对数据库和服务器的管理,需要打开操作系统和Oracle数据库的远程访问端 口。但必须限制远程访问端口的可信任区域。为了减少这类端口被利用和被攻击的可能 性,可更改此类端口为数据库服务器上尚未被使用的...

    09年下半年网管上午

    户可以通过域名正常访问该Web服务器,而外网用户无法访问该服务器。经检查,Web 服务器的DNS记录配置正确,则可能的原因是 (4) 。 备选答案: (3)A. 区域1 B. 区域2 (4)A. 路由器上NAT表项配置错误 B. DHCP...

    citrix 中文管理操作手册

    配置网络防火墙 141 配置 TCP 端口 141 使用代理服务器 142 配置用户身份验证 142 为工作区控制配置身份验证 143 配置 Kerberos 登录 143 系统要求 143 启用 Citrix XML Service DNS 地址解析 144 禁用服务器的 ...

    php网络开发完全手册

    15.5 常见问题与解决方案 259 15.6 小结 261 第16章 数据库中的程序逻辑 262 16.1 数据库程序逻辑与PHP程序逻辑的分体 16.1 设计原则 262 16.2 数据库中的程序逻辑与数据的关系 262 16.3 存储过程的设计 263 16.3.1 ...

    java开源包1

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包11

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包2

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包3

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包6

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包5

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包10

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包4

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包8

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包7

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包9

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

    java开源包101

    Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是不能让一个网站下线。 FTP客户端Java类库 ftp4j ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分...

Global site tag (gtag.js) - Google Analytics