MMON進程手工啟動
手工啟動MMON進程
1. 故障現象
#某帥哥接到業務人員反映系統緩慢,RAC環境
#生成AWR報告發現節點1沒有數據
#查詢快照視圖,發現只有節點1沒有快照記錄,節點2正常存在快照記錄
SYS > select INSTANCE_NUMBER,count(*) from dba_hist_snapshot group by INSTANCE_NUMBER;
#思考:如果兩個節點都沒有快照,考量的方向可能原因:快照關閉了
【#查詢視圖
SYS > select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
754170409 +40150 00:00:00.0 +00008 00:00:00.0 DEFAULT
#關閉awr快照命令
SYS > begin DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(11520,0); end;
#調整快照間隔30分鐘及保留5天
exec dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>5*24*60); 】
#通過查詢MMON進程發現,在節點一的系統上,沒有MMON進程服務,因此判斷,由於MMON進程未正常啟動,導致AWR快照無法生成,缺失快照信息
ps -ef|grep mmon |grep -v grep
2. 什麽是MMON進程
管理監控進程 MMON||MMOL
MMON通過AWR間隔時間,將視圖信息寫入快照中
MMIL通過AWR間隔時間,將緩沖區中ASH寫滿,寫入磁盤中
3. 模擬MMON進程缺失
[root@enmo ~]# ps -ef|grep mmon |grep -v grep
oracle 16947 1 0 Apr13 ? 00:00:08 ora_mmon_ENMO
#KILL MMON進程
[root@enmo ~]# kill -9 16947
[root@enmo ~]# ps -ef|grep mmon |grep -v grep
#手工創建一個快照
SYS > begin
dbms_workload_repository.create_snapshot();
end;
/
PL/SQL procedure successfully completed.
#再次查詢進程
[root@enmo ~]# ps -ef|grep mmon |grep -v grep --並未啟動
4. 手工啟動MMON進程
SYS > alter system enable restricted session;
[root@enmo ~]# ps -ef|grep mmon |grep -v grep
oracle 21960 1 0 20:18 ? 00:00:00 ora_mmon_ENMO
SYS > alter system disable restricted session;
[root@enmo ~]# ps -ef|grep mmon |grep -v grep
oracle 21960 1 0 20:18 ? 00:00:00 ora_mmon_ENMO
#如果能重啟數據庫,重啟集群,重啟系統都可以實現,但是操作細膩度最小,執行上述操作
MMON進程手工啟動