oracle11g UNDO使用率高,且unexpire过高

随声附和 提交于 2019-12-06 02:59:13

1、查看使用率:

set lines 2000
col USED_PER for a60
SELECT A.TABLESPACE_NAME AS TABLESPACE_NAME,
       ROUND(TOTAL/1024/1024/1024,3) AS TOTAL_GB,
       ROUND(FREE/1024/1024/1024,2) AS FREE_GB,
       ROUND(( TOTAL - FREE )/1024/1024/1024,2) AS USED_GB,
       TO_CHAR(ROUND(( TOTAL - FREE ) / TOTAL * 100, 2),'90.99')||'%' AS USED_PER
FROM   (SELECT TABLESPACE_NAME,
               SUM(BYTES) FREE
        FROM   DBA_FREE_SPACE
        GROUP  BY TABLESPACE_NAME) A,
       (SELECT TABLESPACE_NAME,
               SUM(BYTES) TOTAL
        FROM   DBA_DATA_FILES
        GROUP  BY TABLESPACE_NAME) B
WHERE  A.TABLESPACE_NAME = B.TABLESPACE_NAME
order by USED_PER desc;

2、查看各状态undo使用情况统计

select tablespace_name,status,sum(bytes)/1024/1024 MB from dba_undo_extents 
where tablespace_name like 'UNDOTBS%'
group by tablespace_name,status
order by 1;

3、查看数据文件是否自动扩展

select TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE from dba_data_files;

经过查看,目前undo datafile 均为非自动扩展.

4、拼接sql,设置undo数据文件为自动扩展

select 'ALTER DATABASE DATAFILE '||d.file_id||'  AUTOEXTEND ON MAXSIZE '||((bytes/1024/1024) +1) ||'M;' from dba_data_files d where d.tablespace_name like '%UNDO%';

5、经过几分钟,查询使用率可看到undo使用率在减小,unexpire过高的情况明显改善。

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!