最近在生产环境上做压力测试,数据库连的是RAC环境,可是发现数据库只有一个实例上有压力,而另一个实例上只有非常少的连接数,并且没有压力上来,所以找始找环境上的问题:
首先我们做简单的连接测试,最开始连节点1:怎么连都没有问题,然后连节点2,怎么连也没有问题,并发数都可以达到100以上。
但是以RAC的方式连接的时候,前5个还好,后面就非常难连接进来了,要反复试很多次才可以连进来,并发100次,有80%的失败率。
检查环境
>> SQL> show parameter local_l
>> NAME TYPE VALUE
>> ------------------------------------ -----------
>> local_listener string XXXXX
发现两个节点的VALUE值都是空的
用下面的方法修改两个节点的参数
SQL> CONN SYS@CENTER1 AS SYSDBA输入口令: ****已连接。
SQL> ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = ip1)(PORT = 1521))' SID = 'CENTER1';
SQL> CONN SYS@CENTER2 AS SYSDBA输入口令: ****已连接。
SQL> ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS = (PROTOCOL = TCP)(HOST = ip2)(PORT = 1521))' SID = 'CENTER2';
修改完成后,再用show parameter local_l检查环境,应该VALUE里面是自己的监听信息。
回来再做压力测试,发现OK了,