oracle架構之後臺程式
Oracle基礎架構整理二之後臺程式
後臺程式是指由Oracle伺服器隱含執行的程式。當啟動例程時,Oracle不僅會分配SGA,還會自動後臺程式;當關閉例程時,Oracle不僅會釋放SGA所佔用的記憶體空間,而且還會釋放後臺程式所佔用的CPU和記憶體資源。Oracle提供了許多後臺程式。
1.SMON(System Monitor)
用於執行例程恢復,假定在資料庫執行過程中出現例程失敗(斷電,記憶體故障,後臺程式例外等)。此時,SGA資訊尚未被完全寫入到磁碟(資料檔案,重做日誌)。當重新開啟資料庫時,後臺程式SMON會按照以下步驟自動執行例程恢復:
(1)REDO:重新應用那些被記載到重做日誌但尚未寫入資料檔案的資料。因為所有被提交的事務已經記載到了重做日誌,所以可以確保恢復事務資料。
(2)開啟資料庫。在開啟資料庫時,既包含了被提交的資料,也包含了未被提交的資料(加鎖)。
(3)UNDO:取消未提交資料。在開啟資料庫之後,Oracle會自動使用UNDO段回退未提交的資料。
2.PMON(Process Monitor)
PMON用於監視伺服器程式的執行,並且在伺服器程式失敗時清除該伺服器程式。當訪問Oracle Server時,Oracle會在伺服器端為使用者程式(應用程式對應的程式)分配伺服器程式。假定使用者程式因地址例外意外終止執行,PMON可以輪詢檢測該伺服器程式,並執行以下操作:
.回退使用者的當前事務
.釋放伺服器程式所佔有的表鎖和行鎖。
.釋放使用者所佔用的其他資源
3.DBWR(Database Writer)
DBWR用於將資料快取記憶體的髒緩衝區資料寫入到資料檔案中。當執行DML操作時,伺服器程式會修改緩衝區,並且將這些緩衝區標識為“髒緩衝區”,將來這些髒緩衝區資料會由後臺程式DBWR寫入到資料檔案中。
預設情況下只有一個DBW0程式,通過設定初始化引數db_writer_processes可以定義最多10個DBWR程式(DBW0-DBW9)。在出現以下情況時,DBWR程式會開始工作。
.系統發出檢查點(checkpoint)
.伺服器程式不能找到空閒緩衝區
.刪除或截斷表
.是表空間正常離線(Alter Table .....OFFLINE NORMAL)。
.開始表空間備份(Alter TableSpace.....BEGIN BACKUP).
4.LGWR(Log Writer)
LGWR用於將重做日誌緩衝區所記載的全部內容寫入到重做日誌。當執行DML或DDL語句時,伺服器程式首先將事務變化寫到重做日誌緩衝區,然後才會修改資料快取記憶體。注意,Oracle總是“先日誌後修改”(先記載變化後修改資料)。因此,在將髒緩衝區資料寫入到資料檔案之前,Oracle首先將事物變化寫入到重做日誌。也就是說,在DBWR工作之前,LGWR首先將事物變化寫入到重做日誌。
在以下情況中LGWR程式會開始工作:
提交事務(commit)
每隔三秒鐘
當重做資訊超過1M時
重做日誌緩衝區已有1/3填滿
在DBWR程式將髒緩衝區寫入到資料檔案之前
5.CKPT(Checkpoint Process)
CKPT用於發出檢查點(Checkpoint),並且檢查點會同步資料庫的資料檔案,控制檔案和重做日誌。當發出檢查點時,後臺程式CKPT會將檢查點時刻的SCN(System Change Number)寫入到控制檔案和資料檔案頭部,同時會促使後臺程式DBWR將所有髒緩衝區資料寫入到資料檔案中。
當發出檢查點時,不僅後臺程式CKPT和DBWR要開始工作,而且LGWR也會將重做日誌緩衝區寫入到重做日誌,從而確保了資料檔案,控制檔案和重做日誌的一致性。在以下情況中CKPT會開始工作:
日誌切換
關閉例程(Shutdown Abort除外)
手工檢查點操作(Alter System Checkpoint)
由初始化引數fast_start_mttr_target強制發出檢查點
(6)ARCH(Archive Process)
ARCH用於將重做日誌的事務變化複製到歸檔日誌中,該後臺程式只有在ARCHIVELOG 模式下才會被啟動。預設情況下只會啟動兩個歸檔程式(ARC0,ARC1),通過設定初始化引數log_archive_max_processes可以最多定義10個歸檔程式(ARC0-ARC9)。在ARCHIVELOG模式下,當進行日誌切換時會自動生成歸檔日誌。
在Oracle伺服器中,最多可以啟動100個後臺程式。但當啟動了例程之後,後臺程式SMON,PMON,CKPT,DBWR,LGWR一直處於啟動狀態。通過查詢動態效能檢視V$BGPROCESS,可以顯示所有後臺程式的資訊。下面以顯示當前例程所啟動的後臺程式為例說明使用V$BGPROCESS的方法。
Select name,description from v$bgprocess where paddr<>'00';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12035968/viewspace-584364/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle體系結構之-Oracle後臺程式Oracle
- zt_oracle 12c後臺程式與工作原理架構圖Oracle架構
- Oracle程式結構及後臺程式簡介Oracle
- ORACLE DG之後臺程式詳解Oracle
- Expert one on one oracle之後臺程式Oracle
- Oracle程式架構Oracle架構
- ORACLE後臺程式Oracle
- oracle 後臺程式Oracle
- WINDOWS ORACLE 後臺程式WindowsOracle
- Oracle後臺程式列表Oracle
- ORACLE之常用FAQ:ORACLE構架體系Oracle
- Oracle 後臺程式 說明Oracle
- Oracle後臺程式詳述Oracle
- [zt] Oracle RAC 後臺程式Oracle
- 程式碼的架構之說架構
- 架構之:serverless架構架構Server
- 關於Oracle RAC後臺程式Oracle
- Oracle RAC後臺程式介紹Oracle
- Oracle VKRM 後臺程式介紹Oracle
- ORACLE 10G 後臺程式Oracle 10g
- 基於hyperf架構的後臺骨架系統架構
- oracle架構之系統全域性區Oracle架構
- Laravel-admin-init 管理後臺基礎架構Laravel架構
- springboot 後臺管理模組架構設計方案Spring Boot架構
- 實驗,暫停oracle後臺程式Oracle
- Oracle後臺程式及其作用簡介Oracle
- oracle中容易忽略的後臺程式Oracle
- [zt] Oracle10g 後臺程式Oracle
- 【ORACLE】orcle10g後臺程式Oracle
- Oracle後臺程式的功能簡介Oracle
- oracle 後臺程式的理解筆記Oracle筆記
- Oracle 10g 的後臺程式Oracle 10g
- 單體架構&微服務架構&中臺服務架構架構微服務
- 架構之:資料流架構架構
- 前端架構之小小node架構前端架構
- 阿里雲產品之資料中臺架構阿里架構
- 架構週報:微信後臺系統的演進之路架構
- ORACLE 11G 新的後臺程式Oracle