oracle五大程式和server process介紹 (轉載於jx_yu)

li__hl8888發表於2015-01-23
oracle必須的五大程式:
SMON 系統監視程式
             空間管理:  定期合併空間(老版本才有) 定期回收臨時段
             例項恢復:  (如掉電導致例項意外終止)
                      恢復的方法: 先前滾==>後回滾==>釋放資源
             前滾       將資料庫中的SQL(包括提交的和未提交的)全部重新做一遍
             回滾       將沒提交的SQL句從資料庫中將老的映象取出覆蓋
             釋放資源      將前滾和回滾中使用到的資源釋放

DBWn n指的是0-9 a-j 多個寫程式的區分 將髒塊寫盤
             觸發寫的條件
                  1.產生檢查點
                  2.髒資料緩衝區達到閥值 預設10%
                  3.掃描整個db buffer沒有空閒  db buffer中包含髒的和未髒的 優先寫髒資料列表 再寫未改的
                  4.timeout超時 如果DBWR沒事做 會被每三秒喚醒一次去巡檢 寫不寫不一定
                  5.叢集環境的ping請求觸發多例項的資料寫請求
                  6.表級別的truncate或drop也會觸發資料寫
                  7.修改表空間的read only
                  8.做表空間的offline(離線)
                  9.熱備份 begin backup命令
 
PMON 程式監視器
            1.清理與例項非法斷開的server_procese殘留的資源 非正常終止的使用者程式產生的垃圾資源
            2.負責重啟以外死掉的排程器(網路監聽中使用的)
            3.將例項的資訊註冊到監聽程式
 
CKPT 把新的檢查點寫入指定位置
           1.排程資料寫dbwN
           2.將新檢查點寫資料檔案頭
           3.將新檢查點寫控制檔案中的資料檔案頭的記錄
 
 
LGWR 只有一個程式 不會向資料寫程式那麼多 因為寫要求有順序 將redo log buffer裡的條目 寫到redo檔案
            觸發寫的條件
           1.commit
           2.redo log buffer 1/3滿
           3.redo log buffer 日誌緩衝區達到1M
           4.寫日誌優先(任何一次資料寫之前)
           當更新資料量很多時 日誌量很少(就是一update) 資料量卻很多 所以採用寫日誌優先
           5.3秒寫一次
 
 
 
server process簡述【以客戶端執行一條sql為例說明】:
          1、sql語句透過網路到達例項、server process 接收sql語句 
          2、server process 去shard pool找sql和執行計劃 若沒有  解析sql
          3、server process  根據執行計劃去buffer cache(快取dbf的資料)找相關的資料,如沒有才到dbf中取出資料放到buffer chache 再返給使用者
          4、若需要修改資料,server process 讀出資料到buffer cache中  記憶體中修改資料 修改完返給使用者
         
      server process始終為使用者服務,故:server process處理的快慢直接影響使用者體驗的快慢

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

相關文章