1. 程式人生 > >MMON進程手工啟動

MMON進程手工啟動

select || sna ins 報告 監控 success sta 時間

手工啟動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進程手工啟動