1. 程式人生 > >oracle體系結構的個人總結

oracle體系結構的個人總結

undo comm 讀寫 buffer sop 狀態 down 定義 check

  1. Oracle體系結構主要包括:數據庫實例和數據庫文件。如下圖:
  2. 技術分享圖片

  3. 數據庫實例包括:內存(SGA)和後臺一堆進程
  4. 數據庫文件包括:參數文件、日誌文件、控制文件、數據文件、密碼文件
  5. SGA則包括:
  6. 共享池:主要的作用是讓相同的SQL語句不需要在做編譯、語法的校驗,執行計劃的判斷的。提升SQL的運行效率。
  7. 數據緩沖區:緩存從磁盤讀取的數據,提升了查詢速度。常見的場景是同一個SQL語句執行,第一次查詢很慢,第二次就很快的原因。
  8. 日誌緩沖區:提升了數據增、刪、改的速度,減少磁盤的讀寫從而加快速度。
  9. 後臺進程包括:
  10. 數據庫寫進程【DBWn】:將數據緩沖區的內容寫入到數據文件中。DBWn進程負責將在buffer cache中那些被修改的的數據,也就是臟數據寫入磁盤。
    什麽時候開始寫入了?a、當內存不夠時,DBWn就會進行寫入。b、每三秒自動進行一次寫入c、檢查點CKPT。設置:DW_WRITER_PROCESS用來定義DBWn進程數,commit命令是把記錄修改寫入日誌文件,不是把修改後的數據寫入數據文件。
  11. 日誌寫進程[LGWR]:將日誌緩沖區的內容寫入到聯機的日誌文件中。(勞模,很重要很忙碌的一個進程)。什麽時候開始寫入了? a、三秒定時喚醒 b、日誌緩沖區超過1/3,或日誌文件量超過1M c、聯機日誌切換也會出發LGWR d、用戶提交事務時,Commit e、 DBWR執行寫入之前
  12. 系統監控進程【SMON】: 1、負責實例恢復,前滾(Roll Forward)恢復到實例關閉的狀態,使用最後一次檢查點後的日誌進程重做。這時包括提交和未提交的事務。打開數據庫,進行回滾(Roll Back):回滾未提交的事務。(oracle承諾commit之後數據不會丟失,現在我們可以大致的了解是如何實現這個承諾,以及在數據的安全性和數據庫性能之間的平衡選擇。) 2、負責清理臨時段,以釋放空間
  13. 檢查點進程【CKPT】:維護數據的一致性。檢查數據文件和SGA內容的一致性。觸發條件是:1聯機日誌文件切換時2關閉實例(shutdown abort除外)3手工檢查點操作(alter system checkpoint)
  14. 進程監控進程【PMON】:發現用戶進程異常終止,並進行清理。釋放占用資源。(清理異常終止用戶使用的鎖)
  15. 歸檔進程【ARCn】:當聯機日誌切換時,把寫滿的聯機日誌數據拷貝到歸檔文件裏。(LGWR寫日誌寫到需要覆蓋重寫的時候,觸發ARCH進程去轉移日誌文件,復制出去形成歸檔日誌文件,以免日誌丟失)用於事後數據的恢復
  16. 數據庫文件:
  17. 日誌文件:“先記後寫”,重做日誌用於記錄數據庫的變化,當進行例程恢復或介質恢復時需要使用重做日誌
  18. 數據文件:永遠存儲數據庫的數據,包括字典、用戶數據(表、索引)、undo數據等。
  19. 參數文件:定義啟動實例所需要的初始化參數,包括文本參數文件(pfile)和服務器參數文件(spfile)
  20. 控制文件:控制文件用於記錄和維護數據庫的物理結構,並且每個Oracle數據庫至少要包含一個控制文件。
  21. 口令文件:用於驗證特權用戶(具有SYSDBA、SYSOPER權限的特殊數據庫用戶)
  22. 歸檔日誌(Archive log):是非活動(Inactive)重做日誌的備份。

oracle體系結構的個人總結