`
vaniice
  • 浏览: 41234 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】Oracle与网络防火墙

 
阅读更多

DBAOracle数据库上线时,一般都会和网络管理员打个交道,可能你需要申请个IP地址、开通防火墙策略,或者做个NAT地址映射。这里记录下部分我的关于网络防火墙的经验:

1ClientOracle listener

首先这里假设Server端的listener使用端口1521。此时Client需要与ServerOracle建立通讯,如果ClientServer间通过网络防火墙,那么需要开通哪些策略?

a.       Oracle配置为Shared Server

首先需要明确一点,Shared Server连接强制要求使用Oracle Net,即使ClientServer在一台机器上,如果不使用Oracle TNS监听器,就无法使用Shared Server。当需要建立Connection时,Listener会分派一个已存在的共享dispatcher进程,同时将需要REDIRECT的进程/端口信息发送给Client。这些dispatcher进程使用的端口是在数据库startup或者调整dispatcher个数时就分派的,默认这些端口由OS随机选择。

 

b.      Oracle配置为Dedicated Server,但是平台为Windows

这里再明确一个概念,如果Client不通过listener访问Server,即Client本地访问Server。那么就不是由Listener通过fork()/exec()调用(UNIX)或进程IPC调用(Windows)来创建Dedicated Server,而是由Client Process自己创建。

 

Oracle9i及以下版本且在Windows平台上,当connection需求发送至listener时,listener会创建一个Oracle线程(thread),这个线程是会监听在当前IP地址和未使用的随机端口上,之后thread通过IPC通讯将监听地址/端口发送至listenerlistener将此REDIRECT地址信息发送给client并建立connection。所以此时,client也和server的随机端口通讯。

 

但是在Oracle 10gR1以后,Oracle提出direct handoff技术,此时允许listenerconnection信息直接passlocal dispatcherdedicated server process,即此时的connection使用Server1521端口。

不过这个特性默认为disable,可以修改listener.oraDIRECT_HANDOFF_TTC_<listener_name>参数实现。

 

另外从10gR2后,Oracle Net Listener已不会再REDIRECT了,默认行为为direct handoff。当然,这个不包括开头说明的Shared Server

 

c.       Oracle配置为Dedicated Server,平台为Linux/UNIX

这个是日常生活中我遇到的最多的数据库架构。在这种情况下,Listener默认行为为direct handoff,只需要开通ClientServer1521端口通讯即可。

 

另外在Oracle RAC下,需要注意正确设置LOCAL_LISTENER参数,否则的话可能也会导致通讯失败。

When LOCAL_LISTENER is not set at all or is not set correctly, PMON can register both the VIP hostname and the physical hostname with the REMOTE_LISTENER. This is incorrect in RAC but if it does occur, the client can intermittently be routed to a listener endpoint on either of these addresses. If the client is unable to resolve the physical hostname or even the vip hostname, the connection will fail with ORA-12545.

 

d.      Oracle配置DRCP(Database Resident Connection Pooling)

DRCP驻留连接池从Oracle 11g提出,DRCP的工作模式类似数据库连接池,且有别于Shared Server。这里不做展开,不过同Shared ServerDRCP配置后,也存在REDIRECT现象。即connection会选用Server上的随机端口。

 

2Oracle连接与防火墙超时策略

在配置防火墙策略时,有些防火墙会设置clientserver间的最大空闲时间规则,此时,如果Oracle的连接长时间无事务操作,那么这个Connection可能被防火墙中断。

 

所以在Oracle有必要需求时,可以考虑设置DCDDead Connection Detection)机制,解决此问题。

 

DCD用于探测僵死、未断开的会话,一旦Oracle发现,会由PMON进程进行清理。由于DCD机制通过网络探测包(probe packet)定时探测交互,所以此设置也可以用来解决防火墙超时策略问题。

 

设置方法:

修改服务器端的sqlnet.ora文件,增加以下设置:

SQLNET.EXPIRE_TIME= <# of minutes>

 

比如我希望探测包每10分钟探测一次,那么就可以这样设置:

SQLNET.EXPIRE_TIME=10

 

【转自:http://blog.itpub.net/20750200/viewspace-743087

分享到:
评论

相关推荐

    最全最简单ORACLE穿过Windows防火墙的方法分享.pdf

    由于Oracle客户端默认通过随机端口与服务器通信,这导致了防火墙配置变得非常复杂。本文将详细介绍一种简单有效的方法,帮助Oracle客户端顺利穿过Windows防火墙。 #### 二、问题概述 Oracle客户端与服务器之间的...

    Oracle审计仓库和数据库防火墙

    #### 一、Oracle审计仓库(Audit Vault)与数据库防火墙(Database Firewall)概述 - **Oracle审计仓库(Audit Vault)**:是Oracle提供的一款全面的安全解决方案,用于集中管理和分析来自多种源的审计数据,如数据库、...

    Windows平台下让Oracle穿过防火墙.pdf

    **命名管道**是一种高级的通信方法,其主要特点在于不受特定协议限制,可在多种协议中使用,特别是在TCP/IP网络中,它可以实现与端口无关的通信。这种方法特别适合于局域网内的客户端/服务器(C/S)应用程序。 **优点...

    原创思科防火墙与oracle兼容性有问题的抓包过程(1)归类.pdf

    原创思科防火墙与oracle兼容性有问题的抓包过程(1)归类.pdf

    Windows上Oracle开放防火墙端口问题参考.pdf

    如果能让网络监听器与数据库服务进程共享同一个套接字,则连接端口不会发生变化,从而避免防火墙对随机端口的阻断。 - **操作步骤**: - 打开注册表编辑器,找到`HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0`。 -...

    Windows Server 2008 R2 X64环境下搭建双网络Oracle 12C R1 RAC+ASM.pdf

    在搭建双网络Oracle 12C R1 RAC+ASM的过程中,还需要对实施步骤中可能出现的问题进行诊断和解决,如网络连通性测试、存储的联机与初始化、Oracle安装的兼容性和错误处理等。整个搭建过程比较复杂,需要细致规划和...

    linux远程连接oracle数据库

    - Java作为一种广泛使用的编程语言,可以用来开发各种应用程序,包括与数据库交互的应用。要实现Java程序远程连接Oracle 10g数据库,需要配置好Java环境,并使用Oracle提供的JDBC驱动。 - **通过客户端远程连接...

    Linux安装Oracle19C详细步骤

    整个安装过程可以分为六个步骤:系统要求和准备、关闭防火墙、图形桌面、selinux、修改静态 IP、主机名初始化、创建用户和组、安装 Oracle 19C。 系统要求和准备 在安装 Oracle 19C 之前,我们需要确保系统满足...

    oracle client 64位、windows

    Oracle客户端是Oracle数据库与应用程序之间通信的接口,它允许用户通过编程或图形界面(如PL/SQL Developer或SQL Developer)连接到Oracle数据库服务器。在64位Windows操作系统上,必须安装与系统架构相匹配的Oracle...

    Oracle的安装与卸载(删除)

    本文将详述Oracle的安装与卸载过程,以便于读者理解如何管理和维护Oracle环境。 一、Oracle的安装 1. **环境准备**:在安装Oracle前,确保系统满足最低硬件和软件要求,例如操作系统兼容性(Windows、Linux等)、...

    oracle11G的linux下的离线安装教程.pdf

    本文提供了 Oracle 11g 在 Linux 下的离线安装教程,涵盖了查看和修改主机名称、添加主机名与 IP 对应、关闭 SELinux、安装 Oracle 依赖包、关闭 Linux 防火墙、添加 oinstall 和 dba 组、创建 Oracle 安装目录、...

    windows server2008安装oracle11g-详细笔记总结

    在安装 Oracle 11g 之前,需要关闭防火墙,以免安装过程中出现问题。然后,将 Oracle 11g 安装包拖入 Windows Server 2008 中,并解压缩到当前文件夹。 二、安装 Oracle 11g 1.双击 setup.exe,开始安装 Oracle 11...

    Oracle11g彻底卸载方法

    5. **删除文件和文件夹**:在C盘(通常是C:\Oracle或C:\Program Files\Oracle),找到所有与Oracle11g相关的目录,包括安装目录、数据文件存放位置(如ORADATA、REDOLOGS等)以及网络配置文件所在的ORACLE_HOME。...

    linux上离线安装oracle数据库19c

    7. **连接与验证** - 使用`sqlplus`:作为数据库管理工具,通过命令行连接数据库,验证安装是否成功。 - 使用`plsql`:图形化工具PL/SQL Developer,可提供更直观的数据库管理界面。 8. **常见问题** - 在安装...

    Oracle安装常见问题

    ### Oracle安装常见问题详解 ... - **解决方案**: 在安装Oracle前,建议关闭Windows防火墙、其他防火墙软件及杀毒软件,并考虑关闭WebSphere等消耗大量资源的服务和应用程序,以减少安装过程中出现意外的风险。

    Centos7上安装oracle 11g R2(测试成功)

    Centos7 上安装 Oracle 11g R2 需要经过多个步骤,包括环境准备、安装包准备、创建系统用户和用户组、安装目录创建、修改 OS 系统标识、关闭防火墙和 SELinux、修改内核参数、配置用户环境变量、解压安装包等。...

    Oracle学习笔记 PDF

    #### 二、Oracle数据库的安装与配置 ##### 2.1 安装介绍 - **安装版本选择**: - Oracle8、Oracle8i:适用于早期的应用场景,主要特点是针对互联网进行了优化。 - Oracle9i:相较于Oracle8i更为稳定,适合于中等...

    redhat下安装oracle

    关闭防火墙也可能是有必要的,以避免安装过程中出现网络问题。 然后,安装必要的依赖包。Oracle数据库需要一些库和工具,如gcc、glibc、kernel-devel、binutils等。你可以使用`yum`命令来安装这些依赖,如`yum ...

    Ubuntu安装Oracle所需包

    - 检查网络连接是否稳定,确保Oracle下载服务器可访问。 - 使用`strace`或`lsof`命令跟踪进程,找出可能的文件I/O问题。 - 使用`sudo`以管理员权限运行安装脚本。 - 修改防火墙设置,允许必要的端口通信。 5. *...

    Oracle11g从入门到精通2

    2.5 Oracle网络与防火墙 2.5.1 Oracle网络服务 2.5.2 配置Oracle网络环境 2.5.3 Oracle防火墙 第3章 SQL语言基础 3.1 SQL概述 3.1.1 SQL语言的功能 3.1.2 SQL的特点 3.1.3 SQL语句的编写规则 3.2...

Global site tag (gtag.js) - Google Analytics