Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51217
  • 博文数量: 20
  • 博客积分: 77
  • 博客等级: 民兵
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-08 00:20
文章分类
文章存档

2012年(6)

2011年(14)

我的朋友

分类:

2011-12-14 02:04:18

客户这边的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-573149

sqlplus 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-670662

sqlplus 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是否成功更改。

阅读(1027) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~