本文章为网络笔记,看了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