求指教,关于v$undostat的几个字段不理解

[复制链接]
查看11 | 回复7 | 2011-11-1 16:25:51 | 显示全部楼层 |阅读模式
小弟最近在研究DBA必备技能一书,对于书中的这一段不是很理解,望大虾门指点下,原文如下:
通过查询视图v$undostat和查看字段unxpstealcnt,unxpblkrelcnt,unxpblkreucnt列,也可以确定回滚表空间是否太小。
select to_char(begin_time,'mm/dd/yyyy hh24:mi:ss') begin,
to_char(end_time,'mm/dd/yyyy hh24:mi:ss') end,
unxpstealcnt,unxpblekrelcnt,unxpblkreucnt,ssolderrcnt from v$undostat;
如果后3个列中有任意一列使用了高亮度显示值,则表明oracle数据库正从未删除的undo区中获取空间来满足当前的空间需求,为了避免这种事情发生,应该减小undo_retention参数的值或者为undo表空间增加可用的空间。
我的疑问是在 如果后3个列中有任意一列使用了高亮度显示值 这一句话,这句话代表什么意思?什么样的情况下会出现高亮度显示值?高亮度显示值又是个什么东东?因为小弟搞不到这样的环境,所以向各位大虾请教下

回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
你需要了解一下回滚段的这些概念:过期、Steal。
哪么,unxpstealcnt,unxpblkrelcnt,unxpblkreucnt这三个列的意义,就非常简单了。
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层

应该是翻译的书吧?
猜测意思应该是,这个三个列中,任意一列的值不为0
UNXPSTEALCNT
Number of attempts to obtain undo space by stealing unexpired extents from other transactions

UNXPBLKRELCNT
Number of unexpired blocks removed from certain undo segments so they can be used by other transactions

UNXPBLKREUCNT
Number of unexpired undo blocks reused by transactions

回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
unxpstealcnt,unxpblkrelcnt,unxpblkreucnt这三列基本都是指未过期undo被盗用的情况,前一个指盗用次数,后两个指block的数量。。我现在疑问是在如何判断是否达到临界值,是不是只要这3列有出现不是0的情况就说明到临界值了?
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
大虾还在么,再指教下
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
yeluyide 发表于 2012-3-29 18:02
unxpstealcnt,unxpblkrelcnt,unxpblkreucnt这三列基本都是指未过期undo被盗用的情况,前一个指盗用次数,后 ...

可以这样认为。特别是unxpstealcnt。但具体还要看情况而定。
回滚空间重用机制如下:
1、首先检查本回滚段当前区是否有空间块,如果有直接使用。
2、如果没有,事务伸展到下一个区,这被称为一次Wrap,v$rollstat中的WRAPS列加1。如果本回滚段有多个事务,第一个伸展到下一个区的事务会引起WRAPS列加1,其他事务再伸展至一下区,此列不再增加。
3、如果本回滚段中没有可用的区,从UNDO表空间中请求区。这被称为一次Extend,记入v$rollstat的EXTENTS列。
4、UNDO表空间中没有Free区,从其他回滚段Steal过期的区。Steal的单位一定是以区为单位。无论Steal是否成功,V$UNDOSTAT的EXPSTEALCNT列都会加1,此列统计的是次数。EXPBLKRELCNT列是成功Steal的块数。
5、如果Steal过期区不成功,试图扩展数据文件。
6、如果无法扩展文件,在本回滚段中重用未过期的区,V$UNDOSTAT.UNXPBLKREUCNT列增加(增加值是区中块的个数)
7、如本回滚段无过期的块,则Steal其他回滚段中未过期的区。每Steal一次,无论是否成功,都会记入V$UNDOSTAT.UNXPSTEALCNT列。Steal的块数记入UNXPBLKREUCNT列。
8、如还不行,报ORA-30036错误。
如果都开始偷窃其他回滚段中未过期的空间了,说明可用空间已经被用完了。
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
好清晰,谢谢大虾,受教了
回复

使用道具 举报

千问 | 2011-11-1 16:25:51 | 显示全部楼层
vage 发表于 2012-3-29 18:06
可以这样认为。特别是unxpstealcnt。但具体还要看情况而定。
回滚空间重用机制如下:
1、首先检查本回滚 ...


学习
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行