如何确定undo表空间的大小

本文章为网络笔记,看了warehouse老师的视频受益匪浅,更是感觉自己技术太过初级,特写了本笔记,方便以后反复学习!
如有任何不妥,请发邮件至102448567@qq.com删除文章!
关于warehouse:
http://blog.itpub.net/19602/viewspace-1059211/
11gR2视频第四版 4_03_如何确定undo表空间的大小
undo表空间中保留900秒,但是当undo表空间不足的时候是优先覆盖的

SQL> show parameter undo;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
undo_management 		     string	 AUTO
undo_retention			     integer	 900
undo_tablespace 		     string	 UNDOTBS1

Oracle 10.2以后可以强制保留,这个参数只对undo表空间有效并且默认是不强制保留
在这里插入图片描述
强制保留时间

SQL> alter tablespace UNDOTBS1 retention GUARANTEE;

Tablespace altered.

在这里插入图片描述
计算undo表空间的公式
UR:UNDO_RETENTION单位是秒
UPS:每秒产生多少undo块(最重要)
DBS:就是db_block_size
在这里插入图片描述
undo表空间自动管理之后Oracle提供了v$undostat来监控每秒钟产生的undo数量
每隔十分钟记录一条记录,最多保留7天(1008条记录)
在这里插入图片描述
通过字段UNDOBLKS可以计算出UPS,这样就可以计算出一段时间内所需要的undo空间的大小
下面的二十分钟中所需要的undo块是958+155=1113 UPS=1113
在这里插入图片描述
UdnoSpace=[UR * (UPS * DBS)] + (DBS * 24)
[900 * (1113 * 8K)] + (8K * 24) = 8013792K=7.6G
也就是说在2021/2/19 12:03:00-2021/2/19 12:23:00这段时间里所需的undo表空间大约是7.6G
计算undostat记录的7天中需要的undo表空间大小sql如下

SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes"
 FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'),
      (SELECT (SUM(undoblks) / SUM(((end_time - begin_time) * 86400))) AS UPS
         FROM v$undostat),
      (SELECT value AS DBS FROM v$parameter WHERE name = 'db_block_size');
ssolderrcnt:snapshot old error count 快照太旧错误出现的次数

在这里插入图片描述
这个库的v$undostat只有一条记录
在这里插入图片描述

SYS@orclsk1> show parameter undo;

NAME				     TYPE			       VALUE
------------------------------------ --------------------------------- ------------------------------
_gc_undo_affinity		     boolean			       FALSE
_undo_autotune			     boolean			       FALSE    ##注意这一行
undo_management 		     string			       AUTO
undo_retention			     integer			       10800
undo_tablespace 		     string			       UNDOTBS1

MOS:
The parameter “_undo_autotune” has been set to FALSE. This has
disabled automatic undo tuning.

SYS@orclsk1> alter system set "_undo_autotune" = true;

System altered.

SYS@orclsk1> show parameter undo;

NAME				     TYPE			       VALUE
------------------------------------ --------------------------------- ------------------------------
_gc_undo_affinity		     boolean			       FALSE
_undo_autotune			     boolean			       TRUE
undo_management 		     string			       AUTO
undo_retention			     integer			       10800
undo_tablespace 		     string			       UNDOTBS1

Oracle undo自动调优之_undo_autotune参数
https://912616.com/db/oracle/126.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值