局域网中一台2003的服务器装了oracle9i数据库,现在从另一台机器通过oracle9i客户端访问。如果服务器关闭防火墙,客户端可以连接;如果打开防火墙,且1521端口已经选择开启,但还是无法连接。
网上找了点相关资料,设定了USE_SHARED_SOCKET=TRUE,也还是没有效果。
请有实际解决经验的朋友指教,谢谢!
网上找了点相关资料,设定了USE_SHARED_SOCKET=TRUE,也还是没有效果。
请有实际解决经验的朋友指教,谢谢!
init.ora
最后一条加上
mts_dispatchers="(address=(protocol=tcp)(host=XXX)(port=1521))(dispatchers=1)"
以下是资料要在MTS模式下(共享模式) Oracle默认是专用模式。
经试验发现,如果不在init文件中设参数的话,Oracle仍然会要求一个随机端口和1521端口来共同通讯,只是这个随机端口,并不随客户端会话和登录的变化而变化,在没有重启服务器时,是固定的。 (试验发现,在专用模式下,每次连接,oracle服务器会按+1方式,提供一个非1521的端口。) 所以,还需要在init.ora文件的最后加上一条参数:
mts_dispatchers="(address=(protocol=tcp)(host=myoradb)(port=1521))(dispatchers=1)" 这样才真正实现只用一个端口,穿过防火墙。
2.软件防火墙和硬件防火墙也有很大的不同。多用网上的资料试一试吧!