Oracle?sysaux表空間異常增長(zhǎng)的完美解決方法
發(fā)現(xiàn)問(wèn)題
某一業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù),sysaux表空間大小達(dá)到24GB+
查詢(xún)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ò)期快照失敗。
問(wèn)題原因分析:
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ù)。
如果沒(méi)有發(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';
總結(jié)
到此這篇關(guān)于Oracle sysaux表空間異常增長(zhǎng)解決的文章就介紹到這了,更多相關(guān)Oracle sysaux表空間異常增長(zhǎng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle密碼錯(cuò)誤次數(shù)過(guò)多賬號(hào)鎖定的問(wèn)題(推薦)
一般數(shù)據(jù)庫(kù)默認(rèn)是10次嘗試失敗后鎖住用戶(hù)。這篇文章主要介紹了Oracle密碼錯(cuò)誤次數(shù)過(guò)多賬號(hào)鎖定的問(wèn)題,需要的朋友可以參考下2017-03-03Oracle rac環(huán)境的數(shù)據(jù)庫(kù)導(dǎo)入操作步驟
Oracle RAC是一種基于共享存儲(chǔ)和共享數(shù)據(jù)庫(kù)的集群解決方案,可以將多個(gè) Oracle 數(shù)據(jù)庫(kù)實(shí)例連接成一個(gè)邏輯上的單一數(shù)據(jù)庫(kù),提供高可用性、靈活性和可伸縮性,本文給大家介紹Oracle rac環(huán)境的數(shù)據(jù)庫(kù)導(dǎo)入操作,感興趣的朋友一起看看吧2023-06-06Oracle數(shù)據(jù)庫(kù)中基本的查詢(xún)優(yōu)化與子查詢(xún)優(yōu)化講解
這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)中基本的查詢(xún)優(yōu)化與子查詢(xún)優(yōu)化講解,舉了實(shí)例來(lái)分析子查詢(xún)對(duì)性能的影響,需要的朋友可以參考下2016-01-01Oracle數(shù)據(jù)庫(kù)rownum和row_number的不同點(diǎn)
在Oracle中,有一個(gè)很有趣的東西,那就是rownum。當(dāng)你從某個(gè)表中查詢(xún)數(shù)據(jù)的時(shí)候,返回的結(jié)果集中都會(huì)帶有rownum這個(gè)字段,而且有時(shí)候也可以使用rownum進(jìn)行一些條件查詢(xún)2015-11-11Oracle查詢(xún)語(yǔ)句中rownum與rowid的不同之處分析
這篇文章主要介紹了Oracle查詢(xún)語(yǔ)句中rownum與rowid的不同之處分析,需要的朋友可以參考下2014-07-07[Oracle] 淺析令人抓狂的ORA-01555問(wèn)題
首先要說(shuō)明的一點(diǎn)是:ORA-01555錯(cuò)誤是一個(gè)“安全”的錯(cuò)誤,它不會(huì)造成數(shù)據(jù)丟失或損壞,只是會(huì)讓接收到該錯(cuò)誤的查詢(xún)無(wú)法繼續(xù)。以下就是對(duì)發(fā)生ORA-01555錯(cuò)誤的原因進(jìn)行了介紹,需要的朋友可以參考下2013-07-07