UNDO 表空间使用率过高

维护的一个库,最近发现undo表空间的使用率已经到了95%。
让undo表空间的自动扩展,或新建undo表空间进行切换都可以解决这个问题。
undo表空间自动扩展,可能会导致undo不释放,undo表空间的增大,浪费存储空间。
新建undo表空间进行切换,也需要人工干预。
能不能让Oracle自动进行undo表空间的收缩呢?查了MOS,找到一种方法。

设置undo表空间为自动扩展,并设置数据文件自动扩展的最大值MAXSIZE。
这样可以不用调整undo_retention,在最大限度满足闪回的同时,
也可以避免undo表空间使用率过高,不释放的问题。


SQL> select * from  v$version;
 
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

SQL> show parameter undo
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     1800
undo_tablespace                      string      UNDOTBS1


SQL> SELECT autoextensible  FROM dba_data_files WHERE tablespace_name = 'UNDOTBS1';
AUTOEXTENSIBLE
--------------
YES


SQL> SELECT (sum(blocks) * 8) / 1024, status
  2  FROM dba_undo_extents  group by status;
 
(SUM(BLOCKS)*8)/1024    STATUS
                --------------------      ---------------------
                           6648.375     UNEXPIRED
                          504.625        EXPIRED

设置undo表空间为自动扩展,并设置数据文件自动扩展的最大值MAXSIZE
SQL>ALTER DATABASE DATAFILE '/opt/ora11g/datafile/LiangWei/undotbs01.dbf'  AUTOEXTEND ON NEXT 1M MAXSIZE 8192M

经过大约5到10分钟后,查看undo表空间使用率
SQL>SELECT ((SELECT (NVL(SUM(bytes), 0))
           FROM dba_undo_extents
          WHERE tablespace_name = 'UNDOTBS1'
            AND status IN ('ACTIVE', 'UNEXPIRED')) * 100) /
       (SELECT SUM(bytes)
          FROM dba_data_files
         WHERE tablespace_name = 'UNDOTBS1') PCT_INUSE
  FROM dual;

 PCT_INUSE
----------
5.50333658 
 
 
MOS参考文档:
Automatic Tuning of Undo_retention Causes Space Problems [ID 420525.1]
Full UNDO Tablespace In 10gR2 [ID 413732.1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值