srvctl start|stop database -d racdg 时hang死集群数据库资源状态一直在starting或者stoping状态。
只能通过startup单独启动各实例
查看集群日志显示:
[/grid/11.2.0/grid/bin/oraagent.bin(19005610)]CRS-5818:Aborted command 'clean' for resource 'ora.racdg.db'. Details at (:CRSAGF00113:) {2:61116:41137} in /grid/11.2.0/grid/log/racdb2/agent/crsd/oraagent_oracle/oraagent_oracle.log. 2019-04-11 14:56:01.605 [/grid/11.2.0/grid/bin/oraagent.bin(19005610)]CRS-6015:Oracle Clusterware has experienced an internal error. Details at (:CLSGEN00100:) {2:61116:41137} in /grid/11.2.0/grid/log/racdb2/agent/crsd/oraagent_oracle/oraagent_oracle.log.
查看oraagent_oracle.log日志发现:
2019-04-11 14:15:39.216: [ USRTHRD][3087] {2:61116:21172} Value of LOCAL_LISTENER is 2019-04-11 14:15:39.217: [ USRTHRD][3087] {2:61116:21172} sqlStmt = ALTER SYSTEM SET LOCAL_LISTENER=' (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1522))(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1523))(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1 524))(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1525))))' SCOPE=MEMORY SID='racdb2' /* db agent *//* {2:61116:21172} */ 2019-04-11 14:15:39.217: [ USRTHRD][3087] {2:61116:21172} ORA-32021: parameter value longer than 255 characters 2019-04-11 14:15:39.217: [ USRTHRD][3087] {2:61116:21172} DbAgent::DedicatedThread::setLocalListener Exception OCIException 2019-04-11 14:15:39.217: [ USRTHRD][3087] {2:61116:21172} ORA-32021: parameter value longer than 255 character
判断有可能是local_listener值过长导致,查看local_listener值为空。
查看endpoints_listener.ora发现与报出的local_listener过长的值一致。
修改local_listener参数值,使其不为空。
srvctl start|stop database -d racdg启停数据库没有发生问题。
PS:以前aix也出过一次local_listener过长,listener为5个时就会参数显示过长,但是在linux上时local_listener为空,endpoints_listener.ora为8个也没有出现srvctl hang死的问题。