查看: 3929|回复: 14

RAC环境下的碰到的异常情况

[复制链接]
论坛徽章:
0
跳转到指定楼层
1#
发表于 2010-3-7 10:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近RAC环境下,经常出现几台WEB服务器的连接池在一分钟内快速全部产生溢出,此时数据库的IDLE很高(90%左右),但是数据库中出现大量的事务提交不了,WEB系统登陆不了。检查业务系统也不存在连接泄露的情况,数据库也不存在锁表的情况。花了大量的人力时间,目前也找不到具体问题在那里。
    两台10G的数据库构成RAC,WEB服务器是采用WEBSPHERE,请问各位专家指点一下迷津。
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
2#
发表于 2010-3-7 12:21 | 只看该作者
Always tell us Oracle version.

When the problem happens, start with wait events (assuming 10g or up):
select sid, event, p1, p2, p3 from v$session where wait_class != 'Idle';

Check the alert.log:
tail -f alert_$ORACLE_SID.log

> 此时数据库的IDLE很高(90%左右)

So CPU usage is very low?

Yong Huang

使用道具 举报

回复
论坛徽章:
0
3#
 楼主| 发表于 2010-3-7 14:15 | 只看该作者
多谢版主的回复!!!
ORACLE的版本是:10.2.0.4.0,每次出故障时,数据库的CPU的占用率是很低的,不到10%。
我用V$SYSTEM_WAIT_CLASS视图查询等待事件的平均值,发现和RAC全局资源有关的等待事件占了整体等待事件的43%,因此一直怀疑是RAC的全局资源不足导致,但是什么原因导致RAC全局资源不足,则一直没有办法定位。

今天用dba_hist_active_sess_history表统计了在出故障时的等待事件,发现每次出故障前,都出现了LGWR wait for redo copy这个事件。请问此事件和db file parallel write、log file sync这两个时间是否有冲突?或者是坏块导致出现LGWR wait for redo copy这一事件?而且每次出故障时,都会出现大量的gc打头的RAC全局资源的其它等待事件。

请专家指点一下。谢谢!

使用道具 举报

回复
论坛徽章:
0
4#
 楼主| 发表于 2010-3-7 22:29 | 只看该作者
另一个问题就是系统的日志切换太频繁,不知道是否也会导致LGWR wait for redo copy这个事件的出现??
另外我根据dba_hist_active_sess_history,发现如果某一天没有出现LGWR wait for redo copy,系统就不会出故障。但由于dba_hist_active_sess_history只保存了10天左右的数据,因为之前无法统计,只能是后面再出故障时是否跟这个事件有关。

使用道具 举报

回复
论坛徽章:
0
5#
 楼主| 发表于 2010-3-8 14:57 | 只看该作者
附件是发生故障时,用stackpack生成报告的文件,请各位专家指点一下。

[ 本帖最后由 ALONLIN123 于 2010-3-10 12:27 编辑 ]

使用道具 举报

回复
论坛徽章:
42
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53奥运会纪念徽章:羽毛球
日期:2008-04-26 13:39:23生肖徽章2007版:虎
日期:2008-11-24 15:23:482012新春纪念徽章
日期:2012-01-04 11:51:22
6#
发表于 2010-3-8 17:07 | 只看该作者
RAC

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
7#
发表于 2010-3-9 03:15 | 只看该作者
> 发现每次出故障前,都出现了LGWR wait for redo copy这个事件。请问此事件和db file parallel write、
> log file sync这两个时间是否有冲突?或者是坏块导致出现LGWR wait for redo copy这一事件?而且每次
> 出故障时,都会出现大量的gc打头的RAC全局资源的其它等待事件。

Not sure what you mean by 冲突. When LGWR waits for a server (shadow) process to copy redo into log buffer, LGWR waits on "LGWR wait for redo copy" event. It's related to "log file sync" and "log file parallel write" but definitely not related to "db file parallel write". I personally never had a high wait on "LGWR wait for redo copy". Why would server processes be slow to write redo into log buffer, which is in memory not disk? Maybe too many processes want to write lots of redo at the same time? Or there could be a bug. You can open an SR to ask Oracle.

When this happens, what does v$latchholder show? If it constantly shows one single session, can you kill that session to immediately stop the "LGWR wait for redo copy" wait by LGWR?

> 另一个问题就是系统的日志切换太频繁,不知道是否也会导致LGWR wait for redo copy这个事件的出现??

It doesn't sound related. But frequent logfile group switch is bad. It's easy to fix. Why not fix it? How frequent is it?

Your attachment sp_100304.rar doesn't have high "LGWR wait for redo copy". You probably took that snapshot during the time the problem was not ocurring.

Yong Huang

使用道具 举报

回复
论坛徽章:
4
2010新春纪念徽章
日期:2010-03-01 11:19:502014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11ITPUB社区OCM联盟徽章
日期:2014-04-30 14:54:24
8#
发表于 2010-3-9 09:45 | 只看该作者
发生堵塞的时候,有没有检查下 v$log 里的状态?

使用道具 举报

回复
论坛徽章:
0
9#
 楼主| 发表于 2010-3-9 12:58 | 只看该作者
版主:日志切换比较频繁是应用造成的,目前已经完成了一些重构,待升级后查看效果。
      在没有发生故障的正常情况下,没有出现过LGWR wait for redo copy这个事件,从各方面综合看,可能是BUFFER BUSY导致出现这个事件的。

sky_heaven :发生故障时,没有检查过v$log。

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
10#
发表于 2010-3-10 02:38 | 只看该作者
> 日志切换比较频繁是应用造成的,目前已经完成了一些重构,待升级后查看效果。

What do you mean by 升级? You can create bigger logfiles and switch into them and drop the small log files without stopping anything.

> 从各方面综合看,可能是BUFFER BUSY导致出现这个事件的。

You seem to have a habit of jumping to a conclusion without proof or technical background. Why would buffer busy wait cause LGWR wait for redo copy? I can't think of any connection.

Yong Huang

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表