UNDO表空间使用率过高
维护的一个库,最近发现undo表空间的使用率已经到了95%。
让undo表空间的自动扩展,或新建undo表空间进行切换都可以解决这个问题。
undo表空间自动扩展,可能会导致undo不释放,undo表空间的增大,浪费存储空间。
新建undo表空间进行切换,也需要人工干预。
能不能让Oracle自动进行undo表空间的收缩呢?查了MOS,找到一种方法。
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好成都做网站、网站制作服务,我们努力开拓更好的视野,通过不懈的努力,创新互联公司赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,小程序定制开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
设置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, status2 FROM dba_undo_extents group by status;(SUM(BLOCKS)*8)/1024 STATUS-------------------- ---------------------6648.375 UNEXPIRED504.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_extentsWHERE tablespace_name = 'UNDOTBS1'AND status IN ('ACTIVE', 'UNEXPIRED')) * 100) /(SELECT SUM(bytes)FROM dba_data_filesWHERE tablespace_name = 'UNDOTBS1') PCT_INUSEFROM dual; PCT_INUSE----------5.50333658
分享标题:UNDO表空间使用率过高
路径分享:http://pwwzsj.com/article/jpgshe.html