• Oracle?sysaux表空間異常增長的完美解決方法

     更新時間:2022年04月20日 16:24:19   作者:徽州吳彥祖  
    sysaux表空間會因為多種情況而增大,下面這篇文章主要給大家介紹了關于Oracle?sysaux表空間異常增長的完美解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

    發現問題

    某一業務系統數據庫,sysaux表空間大小達到24GB+

    查詢sysaux表空間中對象的大小,超過1GB的列出,發現ASH相關的表過大。

     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
    
    

    查看快照在數據庫中的保留時長

    可以看到,AWR設定的保留時間為8天,WRH$_ACTIVE_SESSION_HISTORY確保留了2140天的數據,需清理。

    查看AWR快照未清理原因

    WRH$_ACTIVE_SESSION_HISTORY由于分區失敗,導致所有數據均在同一個表空間,所以刪除過期快照失敗。

    問題原因分析:

    Oracle根據保留策略決定需要清除哪些行。在大型AWR表的情況下使用了一種特殊的機制,我們將快照數據存儲在分區中。從這些表中清除數據的一種方法是刪除只包含超過保留條件的行的分區。在夜間清除任務中,只有當分區中的所有數據都已過期時,我們才會刪除該分區。如果該分區至少包含一行,根據保留策略,該行不應被刪除,那么該分區將不會被刪除,因此該表將包含舊數據。

    如果沒有發生分區拆分(無論出于何種原因),那么我們最終可能會遇到這樣的情況:我們必須等待最新的條目過期,然后才能刪除它們所在的分區。這可能意味著,一些較舊的條目可以在有效期過后顯著保留。其結果是數據未按預期清除。

    處理方法:

    根據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';
    

    以上步驟執行完成后,再truncate原來的分區,只保留新分區,釋放空間

    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';
    

    總結

    到此這篇關于Oracle sysaux表空間異常增長解決的文章就介紹到這了,更多相關Oracle sysaux表空間異常增長內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

    相關文章

    • Oracle監聽器被優化大師掛掉后的完美解決方法

      Oracle監聽器被優化大師掛掉后的完美解決方法

      這篇文章主要介紹了Oracle監聽器被優化大師掛掉后的完美解決方法,需要的朋友可以參考下
      2017-08-08
    • Oracle數據庫scott用戶創建view視圖權限的操作方法

      Oracle數據庫scott用戶創建view視圖權限的操作方法

      這篇文章主要介紹了Oracle數據庫scott用戶創建view視圖權限的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
      2021-01-01
    • oracle中的一些常用函數及示例

      oracle中的一些常用函數及示例

      這篇文章主要給大家介紹了關于oracle中的一些常用函數及示例的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
      2018-11-11
    • 徹底刪除Oracle數據庫的方法

      徹底刪除Oracle數據庫的方法

      刪除Oracle數據庫并不難,但要徹底刪除就不簡單了,下面為大家介紹下具體的實現,感興趣的朋友可以參考下
      2014-02-02
    • Oracle數據庫失效對象處理詳情

      Oracle數據庫失效對象處理詳情

      這篇文章主要介紹了Oracle數據庫失效對象處理,數據庫業務用戶(非 SYS/Public)下存在失效對象。對失效對象進行分析,主要包括失效的視圖、物化視圖、函數、包、觸發器等,下面帶著些許了解一起深入學習下面文章學習內容吧
      2021-10-10
    • ORA-00947:Not enough values (沒有足夠的值)的深入分析

      ORA-00947:Not enough values (沒有足夠的值)的深入分析

      本篇文章是對ORA-00947:Not enough values (沒有足夠的值)的解決方法進行了詳細的分析介紹,需要的朋友參考下
      2013-05-05
    • Oracle中的SUM用法講解

      Oracle中的SUM用法講解

      今天小編就為大家分享一篇關于Oracle中的SUM用法講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
      2019-04-04
    • Oracle 存儲過程發送郵件實例學習

      Oracle 存儲過程發送郵件實例學習

      接下來將介紹下如何使用存儲過程發送郵件這一案例實現,感興趣的你可以參考下本文或許對你有所幫助
      2013-03-03
    • JDBC連接集群數據庫的方法

      JDBC連接集群數據庫的方法

      這篇文章主要介紹了JDBC連接集群數據庫的方法,有需要的朋友可以參考一下
      2013-12-12
    • Oracle用戶自定義異常實現過程解析

      Oracle用戶自定義異常實現過程解析

      這篇文章主要介紹了Oracle用戶自定義異常實現過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
      2020-09-09

    最新評論

    美丽人妻被按摩中出中文字幕