您好,登錄后才能下訂單哦!
維護(hù)的一個(gè)庫,最近發(fā)現(xiàn)undo表空間的使用率已經(jīng)到了95%。
讓undo表空間的自動(dòng)擴(kuò)展,或新建undo表空間進(jìn)行切換都可以解決這個(gè)問題。
undo表空間自動(dòng)擴(kuò)展,可能會(huì)導(dǎo)致undo不釋放,undo表空間的增大,浪費(fèi)存儲空間。
新建undo表空間進(jìn)行切換,也需要人工干預(yù)。
能不能讓Oracle自動(dòng)進(jìn)行undo表空間的收縮呢?查了MOS,找到一種方法。
設(shè)置undo表空間為自動(dòng)擴(kuò)展,并設(shè)置數(shù)據(jù)文件自動(dòng)擴(kuò)展的最大值MAXSIZE。
這樣可以不用調(diào)整undo_retention,在最大限度滿足閃回的同時(shí),
也可以避免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表空間為自動(dòng)擴(kuò)展,并設(shè)置數(shù)據(jù)文件自動(dòng)擴(kuò)展的最大值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
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。