亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SYSAUX表空間占用過大情況下的處理(AWR信息過多)

發布時間:2020-07-22 21:07:05 來源:網絡 閱讀:51099 作者:小麥苗best 欄目:關系型數據庫

真題1、  SYSTEMSYSAUX表空間存儲的內容有哪些區別?若SYSAUX表空間占用過大則應該如何處理?

答案:在一般情況下,企業產生的業務數據應該存放在單獨的數據表空間,而不應該使用系統已存在的表空間,尤其不能將業務數據保存到SYSTEMSYSAUX表空間中,所以,DBA需要著重關注SYSTEMSYSAUX表空間的占用情況。

Oracle服務器使用SYSTEM表空間管理整個數據庫。這個表空間包含系統的數據字典和關于數據庫的管理信息,這些信息均包含在SYS方案中,只有SYS用戶或者擁有所需權限的其它管理用戶才可訪問這些信息。SYSTEM表空間用于核心功能(例如數據字典表)。

SYSAUXSYSTEM表空間的輔助表空間。Oracle DB早期版本中某些使用SYSTEM表空間或其本身表空間的組件和產品現在改為使用SYSAUX表空間。每個Oracle Database 10g(或更高版本)數據庫都必須擁有SYSAUX表空間。輔助表空間SYSAUX用于附加的數據庫組件,例如,OEM庫(Oracle Enterprise Manager Repository)、AWR快照信息庫、統計信息、審計信息等。

SYSTEMSYSAUX表空間是在創建數據庫時創建的必需存在的表空間。這些表空間必須聯機。在OPEN狀態下,SYSAUX表空間可以脫機以執行表空間恢復,而SYSTEM表空間則不能,這兩種表空間都不能設置為只讀狀態。在MOUNT狀態下,任何表空間都可以脫機。

SYSTEM表空間的大小一般變化不大,而SYSAUX表空間在默認條件下如果不做任何配置,那么隨著時間的推移,會越來越大。所以,如果SYSAUX表空間過大,那么應該及時診斷清理該表空間。

對于SYSTEM表空間而言,如果占用過大,那么一般情況下是由于審計表(SYS.AUD$)過大引起的。需要將審計表移動到其它表空間中,然后再清理審計表(TRUNCATE TABLE SYS.AUD$)即可。需要注意的是,如果審計表過大,那么應該分部去清理審計表,詳細步驟可以參考審計部分。

對于SYSAUX表空間而言,如果占用過大,那么一般情況下是由于AWR信息或對象統計信息沒有及時清理引起的,具體原因可以通過如下的SQL語句查詢:

SELECT OCCUPANT_NAME "Item",

       SPACE_USAGE_KBYTES / 1048576 "Space Used (GB)",

       SCHEMA_NAME "Schema",

       MOVE_PROCEDURE "Move Procedure"

  FROM V$SYSAUX_OCCUPANTS

 WHERE SPACE_USAGE_KBYTES > 1048576

 ORDER BY "Space Used (GB)" DESC;

如果OCCUPANT_NAME列為SM/AWRServer Manageability - Automatic Workload Repository),那么表示AWR信息占用過大;如果該列為SM/OPTSTATServer Manageability - Optimizer Statistics History),那么表示優化器統計信息占用過大。

也可以直接查詢DBA_SEGMENTS視圖獲取信息:

SELECT D.SEGMENT_NAME, D.SEGMENT_TYPE,SUM(BYTES)/1024/1024  SIZE_M

  FROM DBA_SEGMENTS D

 WHERE D.TABLESPACE_NAME = 'SYSAUX'

 GROUP BY D.SEGMENT_NAME, D.SEGMENT_TYPE

 ORDER BY SIZE_M DESC;

然后查詢占用空間較大的表,即可得到占用空間較大的原因,下面分別討論。

(一)AWR信息占用過大

如果確認是AWR信息占用空間過大,那么還可以使用如下的SQL腳本獲取AWR占用信息的詳細信息:

sqlplus / as sysdba @$ORACLE_HOME/rdbms/admin/awrinfo.sql

如果AWR信息占用過大,那么可以通過設置AWR的保留時間來減小AWR信息的存儲空間。通過如下的SQL語句可以獲取AWR的保留時間:

SELECT * FROM DBA_HIST_WR_CONTROL;

通過如下的SQL語句可以設置AWR信息的保留時間為7天(7*24*60),每隔1小時收集一次AWR信息:

EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL=>60, RETENTION=>7*24*60);

需要注意的是,在Oracle 10g中,AWR默認保留7天,在Oracle 11g中,AWR默認保留8天。

在以上設置完成后,可以刪除不需要的AWR快照信息,從而釋放SYSAUX表空間,相關SQL語句如下所示:

SELECT MIN(SNAP_ID),MAX(SNAP_ID) FROM DBA_HIST_SNAPSHOT;

SELECT MIN(SNAP_ID),MAX(SNAP_ID) FROM DBA_HIST_ACTIVE_SESS_HISTORY;

BEGIN

     DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(

      LOW_SNAP_ID => 1,

      HIGH_SNAP_ID => 36768,

      DBID => 1148453265);

END;

如果DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE執行太慢,那么可以先執行TRUNCATE操作:

select distinct 'truncate  table  '||segment_name||';',s.bytes/1024/1024

  from dba_segments s

 where s.segment_name like 'WRH$%'

   and segment_type in ('TABLE PARTITION', 'TABLE')

   and s.bytes/1024/1024>100

   order by s.bytes/1024/1024/1024 desc;

執行完TRUNCATE操作后,再執行DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE。需要注意的是,以上TRUNCATE操作會將AWR中的所有信息全部清除。所以,需要先確認釋放需要這些AWR信息,當然也可以先把需要的AWR信息做導出操作,然后再清空以上AWR信息。

需要注意的是,DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE是通過DELETE操作來完全清理工作的。所以,執行完成后,并不會真正的釋放SYSAUX表空間。此時,應該對相關的表執行MOVETRUNCATE操作。在執行MOVE操作時,由于AWR信息的表都是分區表,不能對分區表全表執行MOVE操作,所以需要單獨對分區執行MOVE操作,例如:

ALTER TABLE WRH$_ACTIVE_SESSION_HISTORY MOVE PARTITION 分區名稱;

執行完MOVE操作后,需要對索引進行重建。同理,對于分區索引,只能對分區的單個索引進行重建,而不能總體重建:

ALTER INDEX WRH$_ACTIVE_SESSION_HISTORY_PK REBUILD PARTITION 分區名稱;

需要注意的是,可以在以上SQL后加上“UPDATE GLOBAL INDEXES”子句讓全局索引不失效。

(二)統計信息占用過大

如果統計信息占用空間過大,那么可以修改統計信息的保留時間。統計信息默認保留31天,過期的統計信息會自動被刪除。

SELECT DBMS_STATS.GET_STATS_HISTORY_RETENTION FROM DUAL;  --查詢統計信息的保留時間

EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);  --設置統計信息的保留時間

若發現統計信息占用了SYSAUX上的大量空間,則可以考慮使用DBMS_STATS.PURGE_STATS過程實施清理。

以下的SQL語句對于診斷SYSAUX表空間的占用情況非常有用:

SELECT DBMS_STATS.GET_STATS_HISTORY_AVAILABILITY FROM DUAL;

SELECT MIN(SAVTIME), MAX(SAVTIME) FROM WRI$_OPTSTAT_TAB_HISTORY;

SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_IND_HISTORY;

SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY;

SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_HISTGRM_HISTORY;

SELECT MIN(SAVTIME), MAX(SAVTIME) FROM SYS.WRI$_OPTSTAT_AUX_HISTORY;

SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_TAB_HISTORY;

SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_IND_HISTORY;

SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY;

SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_HISTGRM_HISTORY;

SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_AUX_HISTORY;

SELECT COUNT(*) FROM SYS.WRI$_OPTSTAT_OPR;

以下SQL可以查詢到無效的ASH信息:

SELECT COUNT(*)

  FROM SYS.WRH$_ACTIVE_SESSION_HISTORY A

 WHERE NOT EXISTS (SELECT 1

          FROM SYS.WRM$_SNAPSHOT B

         WHERE A.SNAP_ID = B.SNAP_ID

           AND A.DBID = B.DBID

           AND A.INSTANCE_NUMBER = B.INSTANCE_NUMBER);

最后需要說明的一點是,負責收集和清理AWR信息的后臺進程為MMON,而隱含參數“_swrf_test_action”可以調試MMON的行為,可以和10046事件結合使用。MMON進程每分鐘都會自動刷新一定的AWR數據到磁盤上,默認情況下,MMON30分鐘做一次AWR信息的清理工作。在trace文件中可以看到“MMON Auto-Purge cycle”字樣。

& 說明:

有關SYSTEMSYSAUX的更多內容可以參考我的BLOGhttp://blog.itpub.net/26736162/viewspace-2152868/

有關審計的更多內容可以參考我的BLOGhttp://blog.itpub.net/26736162/viewspace-2140644/

有關數據庫操作導致索引失效的更多內容可以參考我的BLOGhttp://blog.itpub.net/26736162/viewspace-2152871/

 

 

 



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

顺义区| 崇信县| 杨浦区| 郯城县| 兖州市| 射阳县| 阜康市| 轮台县| 上林县| 军事| 民勤县| 汝南县| 南和县| 酒泉市| 那坡县| 鹿泉市| 忻城县| 同德县| 汽车| 靖安县| 南澳县| 吴川市| 潜江市| 株洲市| 淮滨县| 亳州市| 延寿县| 栾城县| 河东区| 西林县| 临沂市| 泽库县| 夏邑县| 临夏县| 璧山县| 许昌市| 河曲县| 大渡口区| 正镶白旗| 大荔县| 明星|