博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
了解你所不知道的SMON功能(十二):Shrink UNDO(rollback) SEGMENT
阅读量:6290 次
发布时间:2019-06-22

本文共 2100 字,大约阅读时间需要 7 分钟。

SMON对于Undo(Rollback)segment的日常管理还不止于  ,在AUM(automatic undo management或称SMU)模式下SMON还定期地收缩Shrink Rollback/undo segment。  
触发场景   这种AUM下rollback/undo segment的undo extents被shrink的现象可能被多种条件触发:
  • 当另一个回滚段的transaction table急需undo空间时
  • 当SMON定期执行undo/rollback管理时(每12个小时一次):
    • SMON会从空闲的undo segment中回收undo space,以便保证其他tranaction table需要空间时可用。另一个好处是undo datafile的身材不会急速膨胀导致用户要去resize
    • 当处于undo space空间压力时,特别是在发生UNDO STEAL的条件下; SGA中会记录前台进程因为undo space压力而做的undo steal的次数(v$undostat UNXPSTEALCNT EXPSTEALCNT);若这种UNDO STEAL的次数超过特定的阀值,则SMON会尝试shrink transaction table
若smon shrink rollback/undo真的发生时,会这样处理: 计算平均的undo retention大小,按照下列公式: retention size=(undo_retention * undo_rate)/(#online_transaction_table_segment 在线回滚段的个数) 对于每一个undo segment
  • 若是offline的undo segment,则回收其所有的已过期expired undo extents,保持最小2个extents的空间
  • 若是online的undo segment,则回收其所有的已过期expired undo extents,但是保持其segment所占空间不小于平均retention对应的大小。
  注意SMON的定期Shrink,每12个小时才发生一次,具体发生时可以参考SMON进程的TRACE。   若系统中存在大事务,则rollback/undo segment可能扩展到很大的尺寸;视乎事务的大小,则undo tablespace上的undo/rollback segment会呈现出不规则的空间占用分布。 SMON的定期清理undo/rollback segment就是要像一个大锤敲击钢铁那样,把这些大小不规则的online segment清理成大小统一的回滚段,以便今后使用。 当然这种定期的shrink也可能造成一些阻碍,毕竟在shrink过程中会将undo segment header锁住,则事务极低概率可能遇到ORA-1551错误:    
[oracle@vmac1 ~]$ oerr ora 155101551, 00000, "extended rollback segment, pinned blocks released"// *Cause: Doing recursive extent of rollback segment, trapped internally//        by the system// *Action: None
 
如何禁止SMON SHRINK UNDO SEGMENT?   可以通过设置诊断事件event='10512 trace name context forever, level 1'来禁用SMON OFFLINE UNDO SEGS;  
SQL> select * from global_name;GLOBAL_NAME--------------------------------------------------------------------------------www.askmaclean.comSQL> alter system set events '10512 trace name context forever,level 1';System altered.
   
相关BUG 这些BUG主要集中在9.2.0.8之前,10.2.0.3以后几乎绝迹了:  
Bug 1955307 - SMON may self-deadlock (ORA-60) shrinking a rollback segment in SMU mode [ID 1955307.8]
Bug 3476871 : SMON ORA-60 ORA-474 ORA-601 AND DATABASE CRASHED
Bug 5902053 : SMON WAITING ON 'UNDO SEGMENT TX SLOT' HANGS DATABASE
Bug 6084112 : INSTANCE SLOW SHOW SEVERAL LONGTIME RUNNING WAIT EVENTS

转载地址:http://mpdta.baihongyu.com/

你可能感兴趣的文章
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>
80后创业的经验谈(转,朴实但实用!推荐)
查看>>
让Windows图片查看器和windows资源管理器显示WebP格式
查看>>
我的友情链接
查看>>
vim使用点滴
查看>>
embedded linux学习中几个需要明确的概念
查看>>
mysql常用语法
查看>>