Oracle SMON程式的作用

楊奇龍發表於2010-12-08

      Oracle SMON程式會將各個表空間的空閒碎片合併在一起,讓資料庫系統更加容易分配。從而提高資料庫的效能。另外,在資料庫執行的過程中,會因為斷電或者其他的原因而發生故障。此時由於資料快取記憶體中的髒快取塊還沒有來得及寫入到資料檔案中,從而導致資料的丟失。在資料庫啟動的時候,系統監視程式SMON會在下一次啟動例程的時候,自動讀取重做日誌檔案並對資料庫進行恢復。也就是說,進行將已提交的事物寫入資料檔案(已經寫入到日誌檔案中而沒有寫入到資料檔案中的資料)、回退未提交的事務操作。可見,Oracle SMON程式是一個比較小但是卻非常重要的角色。

  在管理這個程式的時候,主要需要注意兩個問題。一是其啟動的時機。一般情況下,例程重新啟動的時候,會啟動這個系統監視程式。然後在這個例程執行期間,這個程式也會被系統定期的喚醒,然後其會檢查是否有工作需要其完成。最重要的是,在有需要的時候,資料庫管理員可以透過其他程式來啟動這個SMON系統系統監視程式,來完成一些特定的工作。

  第二需要注意表空間配置對這個程式的影響。在表空間管理中,有一個引數叫做PCTINCREASE。如果將這個引數設定為0的話,則這個SMON系統監視程式對於這個表空間的作用就要打折扣了。在設定為0的情況下,SMON程式就不會對這個表空間中的空閒碎片進行整理、合併操作。Oracle SMON程式自動對錶空間中的碎片進行管理,自動合併表空間中的空閒碎片。 (ASSM的情況下 最好設定uniform. size 初始化extented 的分配,以減少碎片的產生)不過如果某個表空間這個引數設定為0的話,不會影響到系統監視程式的其他用途,如不會影響到在例程非正常關閉時對資料的恢復操作。即即使這個引數設定為0 ,在有需要的時候其仍然可以利用重做日誌檔案中的記錄來恢復相關的資料。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-681280/,如需轉載,請註明出處,否則將追究法律責任。

相關文章