oracle 1521端口 备忘

原文:http://blog.sina.com.cn/s/blog_467e8dd10100mig4.html

Windows2003下如何开放oracle1521端口服务
今天在windows2003上做oracle数据库需要其它机器访问数据库服务,关闭windows2003的防火墙其它机器可以访问该机的数据库1521端口,打开防火墙的1521端口使用tnsping 服务名可以ping通,但通过Oracle Enterprice Manager Consol 不能连接数据库,于是上网查找资料发现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穿过防火墙的问题
环境:win2000,oracle 9.2.0.1
方法一:在windows2000的注册表中,hkey_local_machine\software\oracle\home0\下加入字符串值:
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)


注意在新版12c上,如果新建了数据库,那么要注意在启动的时候,需要设定oracle_sid为新建的数据库,可以在系统环境变量中,添加相应的属性。新建一个系统环境变量oracle_sid=数据库名字;  然后使用sqlplus和其他的客户端就可以连接了,如果sqlplus可以,而其他工具不可以,可以重启机器,使环境变量生效后,再测试即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值