-
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中,連接上數據庫後,使用命令如下命令即可查看並改寫該進程個數:(需重啓數據庫生效)
- show parameter db_writer_processes
- alter system set db_writer_processes=2 scope=spfile;
- shutdown immediate
- startup
- show parameters db_writer_processes
由於配置該參數會提高系統的IO開銷成本,建議初學者對此值不做修改。
- 參考資料
-
- 1. Oracle DBWn(DBWR)寫數據文件 .CSDN.net[引用日期2015-03-27]
- 2. DBWR Checkpoints (per second) .www.oracle.com[引用日期2015-03-27]