客户这边的RAC环境因为有表空间异常暴涨的问题,即实际表的大小比如只有几百万,而查询表所占用的block时
却异常的大,个别甚至超过100GB,在google了之后发现,这个应该是ORACLE的一个bug
解决办法就是将现在的oracle 10.2.0.4升级到10.2.0.5
升级完成后,有个很无法忍受的问题,那就是客户端连接RAC数据库时不是每次都成功,有时候会报错
今晚就集中处理这个问题,在一堆google之后,终于搞定这个问题,大致过程如下:
首先,在crmdb1, 和crmdb2这两个instance下面执行show parameter listener命令时,结果如
rac1:
local_listener string LISTENER_CRMDB1
remote_listener string LISTENERS_CRMDB
rac2:
local_listener string LISTENER_CRMDB2
remote_listener string LISTENERS_CRMDB
此时,LISTENER_CRMDB1和 LISTENER_CRMDB2在各自机器的tnsnames.ora配置文件里面都存在定义,
(这个文件在我升级之前是没有上面两个变量的定义的,用被oracle自动更改了的tnsnames.ora先启动数据库,然后再执行下面的更改,之后再用我之前备份下来的tnsnames.ora文件来启动数据库)
这里参考了下面的文章,解决掉客户端连接异常的情况
http://space.itpub.net/9252210/viewspace-573149sqlplus sys/123@crmdb1 as sysdba
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 10.188.105.77)(PORT = 1521))' scope=both sid='crmdb1';
sqlplus sys/123@crmdb2 as sysdba
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 10.188.105.78)(PORT = 1521))' scope=both sid='crmdb2';
这个问题解决后,在测试Load Balance时,会发现有问题,我的LB是在服务器端做的,此时客户端上来的连接
都是只连接一个instance,对于这个问题的解决参考了下面的文章
http://space.itpub.net/777981/viewspace-670662sqlplus sys/123@crmdb as sysdba
alter system set local_listener='LISTENERS_CRMDB' scope=spfile sid='crmdb1';
alter system set local_listener='LISTENERS_CRMDB' scope=spfile sid='crmdb2';
create pfile from spfile;
然后重启数据库,并执行show parameter listener进行检查local_listener是否成功更改。
阅读(1026) | 评论(0) | 转发(0) |