您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle RAC客户端连接不稳定的解决方法

2024/3/25 21:58:21发布12次查看
欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入 oracle rac安装完毕后,监听、tnsname.ora按照oracle默认配置好后,在服务器端用sqlplus连接没有问题,但是用客户端连接,会出现有时候连不上的错误,解决方法: 1、修改监听文件,增加sid_list_lis
欢迎进入oracle社区论坛,与200万技术人员互动交流 >>进入
oracle rac安装完毕后,监听、tnsname.ora按照oracle默认配置好后,在服务器端用sqlplus连接没有问题,但是用客户端连接,会出现有时候连不上的错误,解决方法:
1、修改监听文件,增加sid_list_listener,两台机器都要修改,修改完毕后如下:
listener_orcl1 =
(description_list =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))
)
)
)
sid_list_listener_orcl1 =
(sid_list =
(sid_desc =
(oracle_home = /u01/app/oracle/product/11.1.0)
(sid_name = ora1)
)
)
2、修改tnsname.ora,两台机器都要修改,例如第一台机器:
用oracle的netca配置的时候,只配置了一个监听listeners_orcl,手工增加另外两个监听。
listener_orcl2 =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.2)(port = 1521))
)
listener_orcl1 =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))
)
listeners_orcl =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.2)(port = 1521))
(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))
)
orcl1 =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))
)
(connect_data =
(service_name = orcl)
)
)
orcl2 =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.2)(port = 1521))
)
(connect_data =
(service_name = orcl)
)
)
orcl =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))
(address = (protocol = tcp)(host = 192.168.0.2)(port = 1521))
(load_balance = yes)
)
(connect_data =
(server = dedicated)
(service_name = orcl)
)
)
3、修改pfile,将两个本地监听设置上。
可以先导出一份spfile,修改完毕后再导入pfile。增加以下三行:
*.local_listener='listener_orcl'
ora1.local_listener='listener_orcl1'
ora2.local_listener='listener_orcl2'
另外,在启动oralce时,出现ora-32006的错误,数据库倒是起来能用。到网上搜索一通,说是oracle10g以后将*.log_archive_start=true 这个参数去掉了,把这行从spfile中删除了,再启动没有报错。是否真的不需要这个参数,还需要再确认。
4、oracle驱动
经测试发现,在oracle rac环境下,如果down掉一个实例,应用出现以下错误:
io 异常: software caused connection abort: socket write error
org.apache.cocoon.processingexception: error on execute servlet:login: javax.servlet.servletexception: error on execute servlet:login
cause: java.sql.sqlexception: io 异常: software caused connection abort: socket write error
经反复测试,确定原因是oracle的驱动ojdbc14.jar没有放到web-inf/lib下的原因。此启动在公共lib下,必须copy到当前工程下,才能实现fail-over的自动切换.
[1] [2]
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product