oracle後台進程

來源:互聯網
上載者:User

標籤:oracle   伺服器   

後台進程是指由Oracle伺服器隱含執行的進程。當啟動常式時,Oracle不僅會分配SGA,而且還會啟動後台進程;當關閉常式時,Oracle不僅會釋放SGA所佔用的記憶體空間,而且還會釋放後台進程所佔用的CPU和記憶體資源。Oracle提供了許多後台進程,下面介紹常用的後台進程SMON、PMON、DBWR、LGWR、CKPT、ARCH。

1、SMON(System Monitor)

SMON用於執行常式恢複,假定在資料庫運行過程中出現常式失敗(斷電、記憶體故障、後台進程例外等),此時SGA資訊尚未被完全寫入到磁碟(資料檔案、重做日誌)。當重新開啟資料庫時,後台進程SMON會按照以下步驟自動執行常式恢複:

 (1.1)REDO:重新應用那些被記載道重做日誌但是沒有寫入到資料檔案的資料,因為所有被提交的事務都已經記錄在重做日誌,所以可以確保恢複交易資料。

(1.2)開啟資料庫。在開啟資料庫時,既包含了被提交的資料,也包含了未被提交的資料(加鎖)。

(1.3)UNDO:取消未提交資料。在開啟資料庫之後,Oracle會自動使用UNDO段回退未提交的資料。

2、PMON(Process Monitor)

PMON用於監視伺服器進程的執行,並且在伺服器處理序失敗時清除該伺服器處理序。當訪問Oracle Server時,Oracle會在伺服器端為使用者進程(應用程式對應的進程)分配伺服器處理序。假定使用者常式因地址例外意外終止運行,PMON可以輪詢檢測到該伺服器處理序,並執行以下操作:

(2.1)回退使用者的當前事務

(2.2)釋放伺服器處理序所佔用的表鎖和行鎖

(2.3)釋放使用者所佔用的其他資源

3、DBWR(Database Writer)

DBWR用於將資料快取的髒緩衝區資料寫入到資料庫檔案中。當執行DML操作時,伺服器處理序會修改緩衝區,並且將這些緩衝區標示為“髒緩衝區”,將來這些髒緩衝區的資料會有後台進程DBWR寫入到資料檔案中。預設情況下只有一個DBW0進程。通過設定初始化參數db_writer_processes可以定義最多10個DBWR進程(DBW0~DBW9),在出現以下情況時,DBWR進程會開始工作。

(3.1)系統發出檢查點(checkpoint)

(3.2)伺服器處理序不能找到空閑緩衝區

(3.3)刪除或截斷表

(3.4)使資料表空間正常離線(ALTER TABLE ......OFFLINE NORMAL)

(3.5)開始資料表空間備份(ALTER TABLESPACE ......BEGIN BACKUP)

4、LGWR(Log Writer)

LGWR用於將重做日誌緩衝區記載的全部內容寫入到重做日誌。當執行DML或DDL語句時,伺服器處理序首先將事務變化寫入到重做日誌緩衝區,然後才會修改資料快取。注意Oracle總是“先日誌後修改”(先記載變化後修改資料)。因此,在將髒資料寫入到資料檔案之前,Oracle首先將事務變化寫入到重做日誌。也就是說在DBWR工作之前,LGWR首先將事務變化寫入到重做日誌。在出現以下情況時,LGWR進程會開始工作。

(4.1)提交事務(COMMIT)

(4.2)每隔三秒

(4.3)當重做資訊超過1M時

(4.4)重做日誌緩衝區已有1/3填滿

(4.5)在DBWR進程將髒緩衝區寫入到資料檔案之前

5、CKPT(Checkpoint Process)

CKPT用於發出檢查點(Checkpoint ),並且檢查點會同步資料庫的的資料檔案、控制檔案和重做日誌。當發出檢查點時,後台進程CKPT會將檢查點時刻的SCN(System Change Number)寫入到控制檔案和資料檔案頭部,同時會促使後台進程DBWR將所有髒緩衝區資料寫入到資料檔案。當發出檢查點時,不僅後台進程CKPT和DBWR要開始工作,而且LGWR也會將重做日誌緩衝區寫入到重做日誌,從而確保了資料檔案、控制檔案和重做日誌的一致性。在以下情況下CKPT會開始工作:

(5.1)日誌切換

(5.2)關閉常式(SHUTDOWM ABORT除外)

(5.3)手工檢查點操作(ALTER SYSTEM CHECKPOINT)

(5.4)由初始化參數fase_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一直處於啟動狀態。通過查詢動態效能檢視可以顯示所有後台資訊。如:select * from V$BGPROCESS


本文出自 “努力奔向前方” 部落格,請務必保留此出處http://liucb.blog.51cto.com/3230681/1576319

oracle後台進程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.