用三个方法设置Oracle数据库穿越防火墙
方法一:在系统注册表中,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)