接到同事电话后,第一时间了解了一下信息。机房断电,导致rac节点全部断电。重新来电后发现数据库中有一个实例连接不上了。
接到问题后,第一反应需要拿到rac的第一手资料。
拿到资料后登陆到linux系统中grid用户下:
crs_stat -t -v

发现节点二不在线了。此时并不知道是节点二服务器本身的问题还是节点二被集群驱逐出去了。
此时ping 10.10.10.5----节点二物理IP。发现不通 问题出在节点二上面了。得到反馈是节点二机器出问题了,需要惠普厂家过来换硬件,大概需要一星期。
可是即使节点一在线,也不会出现有个实例连接不上的情况。
上图可以看到两个实例都已经在线运行,查看监听状态:

监听没有任何问题。
此时仔细看了一下连接时的报错。
*****ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程
分析问题:
1.session数不够
2.客户端和服务端建立连接的时候不稳定
首先从第一条入手。export ORACLE_SID=orcl1;
sqlplus as sysdba;

登陆上了之后,查看一下processes数量跟session数量:


问题就在这儿了,更改processes数量
: alter system set processes=300 spfile=scope;
alter system set session=335 spfile=scope;

注:
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
因为是静态参数,需重启数据库才能生效:
shutdown immediate;
startup;----竟然报错了。

rac环境中提示没有pfile文件。比较奇怪的是这个错误让我很不理解:
cd u01/app/oracle/product/11.2.0/db_1/dbs
竟然没有initoracl1.ora文件,却有initoracll.ora
问题在这儿了,mv initorcll.ora initorcl1.ora

重新启动:startup
数据库启动,连接正常。
注:----------rac环境中的参数文件一定要慎之又慎。
万不能轻易执行:create spfile from pfile;或 create pfile from spfile;
因为节点中的pfile中就是一个指向,指向asm磁盘的spfile。
vi initoracll.ora





