您好,登錄后才能下訂單哦!
這篇“Oracle sysaux表空間異常增長(zhǎng)怎么解決”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Oracle sysaux表空間異常增長(zhǎng)怎么解決”文章吧。
某一業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù),sysaux表空間大小達(dá)到24GB+
查詢sysaux表空間中對(duì)象的大小,超過(guò)1GB的列出,發(fā)現(xiàn)ASH相關(guān)的表過(guò)大。
SEGMENT_NAME OWNER SEGMENT_TYPE MB ------------------------------ -------------------- ------------------ ------ WRH$_ACTIVE_SESSION_HISTORY SYS TABLE PARTITION 7151 WRH$_EVENT_HISTOGRAM_PK SYS INDEX PARTITION 1856 WRH$_EVENT_HISTOGRAM SYS TABLE PARTITION 1777 WRH$_LATCH SYS TABLE PARTITION 1657 WRH$_SQLSTAT SYS TABLE PARTITION 1344
查看快照在數(shù)據(jù)庫(kù)中的保留時(shí)長(zhǎng)
可以看到,AWR設(shè)定的保留時(shí)間為8天,WRH$_ACTIVE_SESSION_HISTORY確保留了2140天的數(shù)據(jù),需清理。
查看AWR快照未清理原因
WRH$_ACTIVE_SESSION_HISTORY由于分區(qū)失敗,導(dǎo)致所有數(shù)據(jù)均在同一個(gè)表空間,所以刪除過(guò)期快照失敗。
Oracle根據(jù)保留策略決定需要清除哪些行。在大型AWR表的情況下使用了一種特殊的機(jī)制,我們將快照數(shù)據(jù)存儲(chǔ)在分區(qū)中。從這些表中清除數(shù)據(jù)的一種方法是刪除只包含超過(guò)保留條件的行的分區(qū)。在夜間清除任務(wù)中,只有當(dāng)分區(qū)中的所有數(shù)據(jù)都已過(guò)期時(shí),我們才會(huì)刪除該分區(qū)。如果該分區(qū)至少包含一行,根據(jù)保留策略,該行不應(yīng)被刪除,那么該分區(qū)將不會(huì)被刪除,因此該表將包含舊數(shù)據(jù)。
如果沒有發(fā)生分區(qū)拆分(無(wú)論出于何種原因),那么我們最終可能會(huì)遇到這樣的情況:我們必須等待最新的條目過(guò)期,然后才能刪除它們所在的分區(qū)。這可能意味著,一些較舊的條目可以在有效期過(guò)后顯著保留。其結(jié)果是數(shù)據(jù)未按預(yù)期清除。
根據(jù)MOS:WRH$_ACTIVE_SESSION_HISTORY Does Not Get Purged Based Upon the Retention Policy (Doc ID 387914.1)處理步驟
1.Check the partition details for the offending table before the split:
SELECT owner, segment_name, partition_name, segment_type, bytes/1024/1024/1024 Size_GB FROM dba_segments WHERE segment_name='WRH$_ACTIVE_SESSION_HISTORY';
2.Split the partitions so that there is more chance of the smaller partition being purged:
alter session set "_swrf_test_action" = 72;
NOTE: This command will split partitions for ALL partitioned AWR objects. It also initiates a single split; it does not need to be disabled and will need to be repeated if multiple splits are required.
3.Check the partition details for the offending table after the split:
SELECT owner, segment_name, partition_name, segment_type, bytes/1024/1024/1024 Size_GB FROM dba_segments WHERE segment_name='WRH$_ACTIVE_SESSION_HISTORY';
以上步驟執(zhí)行完成后,再truncate原來(lái)的分區(qū),只保留新分區(qū),釋放空間
ALTER TABLE WRH$_ACTIVE_SESSION_HISTORY TRUNCATE PARTITION WRH$_ACTIVE_xxxxx;
檢查索引是否正常
select index_name,partition_name,status from dba_ind_partitions where index_name='WRH$_ACTIVE_SESSION_HISTORY_PK';
以上就是關(guān)于“Oracle sysaux表空間異常增長(zhǎng)怎么解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。