近来由于工作需要,在Windows XP平台上安装了Oracle9i数据库作为测试之用,一切正常。但当客户机连接服务器时却总是超时,我首先想到了防火墙,当我打开1521端口时,连接操作仍然失败。我又怀疑网络有问题,用telnet server_ip:1521尝试,连接被接受,说明1521端口已经被打开。

  我们有的时候需要映射端口远程去访问Oracle数据库,这里有个防火墙的问题,在unix上没有问题,但是在win 平台上却无法正确访问。查询Oracle资料后才明白,network listener只起一个中介作用,当客户连接它时,它根据配置寻找到相应的数据库实例进程,然后spawned一个新的数据库连接,这个连接端口由network listener传递给客户机,此后客户机就不再和打交道了,即使listener停止了工作。这个新的连接端口是不可预知的,因而会被防火墙阻止。

  Windows Socket2 规范有一个新的特性,就是Shared Socket,所谓共享套接字是指一个进程共享另一个进程的套接字(详见MSDN相关参考)。如果让network listener与数据库服务进程共享套接字,那么连接端口就不会变化。

  ①如何设置Shared Socket?

  在注册表:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0上新建一个字符串值:USE_SHARED_SOCKET=true.如果安装了多个目录,则每个类似的目录都要设置:HKEY_LOCAL_MACHINESOFTWAREORACLEHOMEx (x目录编号)

  设置后要求重新启动实例(只重启listener发现没有效果)

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

  windows平台上的这个问题成了一大难题,很多论坛都有人问,但很少有人能解决。unix平台不用担心,系统自动会解决这个问题。 Matalink上提供了三种解决办法,实际上USE_SHARED_SOCKET是最有效最方便的。但经过无数次实现,仍然没有成功,最后终于发现是Oracle 8.1.7的bug 需要打补丁,升级到Oracle 8.1.7.1.2

  ②init.ora文件的最后加上一条参数,使随机端口,并不随客户端会话和登录的变化而变化

  需要在MTS模式下(共享模式) Oracle默认是专用模式。

  经试验发现,如果不在init文件中设参数的话,Oracle仍然会要求一个随机端口和1521端口来共同通讯,只是这个随机端口,并不随客户端会话和登录的变化而变化,在没有重启服务器时,是固定的。(试验发现,在专用模式下,每次连接,oracle服务器会按+1方式,提供一个非1521的端口。)所以,还需要在init.ora文件的最后加上一条参数:

  mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)"

  设置后要求重新启动实例。

  

转载于:https://www.cnblogs.com/gsxdream/p/6856116.html

防火墙上开放Oracle服务端口1521的方法相关推荐

  1. 将oracle端口1521共享_防火墙上开放Oracle服务端口1521的方法

    近来由于工作需要,在Windows XP平台上安装了Oracle9i数据库作为测试之用,一切正常.但当客户机连接服务器时却总是超时,我首先想到了防火墙,当我打开1521端口时,连接操作仍然失败.我又怀 ...

  2. 防火墙开启oracle端口号,在防火墙上开放Oracle服务端口的方法

    Oracle服务端口方面会有很多的问题,下面就将为您介绍在防火墙上开放Oracle服务端口的方法,希望对您学习Oracle服务端口方面能有所帮助. 要使Oracle客户端能正常连接到设置有防火墙的安装 ...

  3. oracle orcl不存在,oracle服务丢失的处理方法之OracleServiceORCL不存在示例

    oracle服务是oracle数据库的重要组成部分,下面就教您oracle服务丢失的处理方法,如果您之前遇到过oracle服务丢失的问题,不妨一看. 今天发现数据库服务器上的所有oracle服务都丢失 ...

  4. 解决Oracle服务端1521端口无法telnet,服务名未开启监听问题

    场景:oracle服务安装在windows本地,oracle客户端在虚拟机中,使用虚拟机连接windows的oracle数据库. 问题1:使用虚拟机telnet我本地oracle1521端口,不通 解 ...

  5. 开启1521端口监听_解决Oracle服务端1521端口无法telnet,服务名未开启监听问题

    场景:oracle服务安装在windows本地,oracle客户端在虚拟机中,使用虚拟机连接windows的oracle数据库. 问题1:使用虚拟机telnet我本地oracle1521端口,不通 解 ...

  6. Arcgis Server 默认服务端口号修改方法

    本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...

  7. pc 页面在移动端怎么获取放大倍数、_百度移动搜索开放适配服务的3种方法

    为了提升用户的移动搜索结果浏览体验,百度移动搜索对具有对应手机站的PC站提供"开放适配"服务. 如果您同时拥有PC站和手机站,且二者能够在内容上对应,您可向百度"提交&q ...

  8. android 百度移动搜索 url 参数,百度移动搜索开放适配服务的3种方法

    为了提升用户的移动搜索结果浏览体验,百度移动搜索对具有对应手机站的PC站提供"开放适配"服务. 如果您同时拥有PC站和手机站,且二者能够在内容上对应,您可向百度"提交&q ...

  9. 修改Oracle默认端口1521

    一.修改listener.ora文件内容 文件目录 product\12.1.0\dbhome_1\NETWORK\ADMIN\listener.ora 修改文件中默认端口号1521 为目标端口号 在 ...

最新文章

  1. jQuery对表单、表格的操作以及更多应用
  2. WebService安全 身份验证与访问控制
  3. PHP——使用PHPMailer实现PHP发邮件功能
  4. Web前端饱和了?还能学Web前端吗?
  5. 无意中发现的,自己看吧
  6. 以前的学习笔记整理:第二层交换和生成树协议(STP)
  7. 静态库和动态库(转)
  8. 介绍 Spring 3.1 M1 中的缓存功能
  9. 介绍几个专门面向中文的命名实体识别和关系抽取工具
  10. 使用Redis的理由
  11. c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...
  12. 50.分治算法练习:  二分算法:  2703 奶牛代理商 XII
  13. 2021-07-03父传递子,子传递父,选项激活自定义组件
  14. Java 处理 XML 的三种主流技术及介绍
  15. EDSR dataloader.py代码问题
  16. win10和深度linux双系统,深度系统(deepin)与win10双系统切换设置
  17. Android Bugs——Error:java.lang.RuntimeException: Some file crunching failed, see logs for details
  18. Maya模型导入到Unity3d 的秘诀
  19. Win10_ltsc_2019_x64集成DPO基于人工智能优化可动态提高应用程序性能提升高达394%
  20. JS笔记:实现网页税收表

热门文章

  1. 2008北京奥运会歌曲推荐
  2. 移动互联网App兼容性测试
  3. 优秀博客 --敏感词汇过滤
  4. 学android开发,入门语言JAVA知识点
  5. Android中样式及主题
  6. C# 连接SQL Server数据库的几种方式--server+data source等方式
  7. 如何获得线程对象,获得Thread对象,得到线程对象,根据线程名获得线程对象,多线程取得线程对象...
  8. 在 Windows 下部署 Go 语言环境
  9. HBase中数据的多版本特性潜在的意外
  10. java ocr linux_linux系统如何使用tess4j(java)进行ocr图片文字识别