複製鏈接
請複製以下鏈接發送給好友

DBWn

鎖定
DBWn
Database Writer
Oracle數據庫後台寫入進程
中文名
Oracle數據庫後台寫入進程
外文名
DBWn
曾用名
DBWr

目錄

DBWn基本數據

Database Writer是Oracle數據庫實例中的一個進程。
DBWr是一個概念,後來允許多進程寫data file,所以改成DBWn了 [1] 
[2]  數據庫寫入進程(DBWn)負責把buffer cache內的髒數據寫入數據文件。
buffer cache被修改了,就會標成髒數據。DBWn的主要工作是把髒數據寫入磁盤以保證buffer cache 是乾淨的。用户進程會產生髒數據,空餘的緩衝區會減少。如果空閒的緩衝區太少,用户進程從磁盤讀block進緩衝區的時候就找不到空餘的位置了。DBWn管理 buffer cache保證用户進程始終可以找到空閒的位置。

DBWn參數

DBWn的觸發條件有:
1、當server process在buffer擦車中無法找到可用的buffer時,調用該進程,保證用户進程始終可以在buffer cache中找到空閒的位置;
2、接收到CKPT(檢查點,checkpoint)進程的指令後,調用該進程,將數據寫入到磁盤中。
作為一個DBA,可以通過設置多個DBWn進程來加快髒數據寫入磁盤的速度。在sqlplus中,連接上數據庫後,使用命令如下命令即可查看並改寫該進程個數:(需重啓數據庫生效)
  1. show parameter db_writer_processes
  2. alter system set db_writer_processes=2 scope=spfile;
  3. shutdown immediate
  4. startup
  5. show parameters db_writer_processes
由於配置該參數會提高系統的IO開銷成本,建議初學者對此值不做修改。
參考資料