維護(hù)的一個庫,最近發(fā)現(xiàn)undo表空間的使用率已經(jīng)到了95%。
讓undo表空間的自動擴展,或新建undo表空間進(jìn)行切換都可以解決這個問題。
undo表空間自動擴展,可能會導(dǎo)致undo不釋放,undo表空間的增大,浪費存儲空間。
新建undo表空間進(jìn)行切換,也需要人工干預(yù)。
能不能讓Oracle自動進(jìn)行undo表空間的收縮呢?查了MOS,找到一種方法。
我們注重客戶提出的每個要求,我們充分考慮每一個細(xì)節(jié),我們積極的做好成都做網(wǎng)站、網(wǎng)站制作服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,小程序定制開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。
設(shè)置undo表空間為自動擴展,并設(shè)置數(shù)據(jù)文件自動擴展的最大值MAXSIZE。
這樣可以不用調(diào)整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
設(shè)置undo表空間為自動擴展,并設(shè)置數(shù)據(jù)文件自動擴展的最大值MAXSIZE
SQL>ALTER DATABASE DATAFILE '/opt/ora11g/datafile/LiangWei/undotbs01.dbf' AUTOEXTEND ON NEXT 1M MAXSIZE 8192M
經(jīng)過大約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