OracleRAC客户端连接不稳定的解决方法.doc
文本预览下载声明
Oracle RAC客户端连接不稳定的解决方法
Oracle RAC安装完毕后,监听、tnsname.ora按照Oracle默认配置好后,在服务器端用sqlplus连接没有问题,但是用客户端连接,会出现有时候连不上的错误,解决方法:
1、修改监听文件,增加SID_LIST_LISTENER,两台机器都要修改,修改完毕后如下:
LISTENER_ORCL1 =
?(DESCRIPTION_LIST =
??? (DESCRIPTION =
????? (ADDRESS_LIST =
??????? (ADDRESS = (PROTOCOL = TCP)(HOST = )(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 = )(PORT = 1521))
?)
?
LISTENER_ORCL1 =
?(ADDRESS_LIST =
??? (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
?)
?
LISTENERS_ORCL =
?(ADDRESS_LIST =
??? (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
??? (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
?)
?
?
ORCL1 =
?(DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SERVICE_NAME = ORCL)
??? )
?)
?
?
ORCL2 =
?(DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SERVICE_NAME = ORCL)
??? )
?)
?
ORCL =
?(DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))
????? (ADDRESS = (PROTOCOL = TCP)(HOST = )(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.ser
显示全部