日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 后台进程(background process)详解

發布時間:2024/8/26 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 后台进程(background process)详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
查看已運行background process $ps -ef | grep ora

SQL> select name,description from v$bgprocess where paddr !='00';

NAME? DESCRIPTION
----- ----------------------------------------------------------------
PMON? process cleanup
PSP0? process spawner 0
MMAN? Memory Manager
DBW0? db writer process 0
LGWR? Redo etc.
CKPT? checkpoint
SMON? System Monitor Process
RECO? distributed recovery
CJQ0? Job Queue Coordinator
QMNC? AQ Coordinator
MMON? Manageability Monitor Process

NAME? DESCRIPTION
----- ----------------------------------------------------------------
MMNL? Manageability Monitor Process 2

已選擇12行。

1. DBWn (database writer,數據庫寫入進程) 將數據緩沖的數據寫入數據文件,是負責數據緩沖區管理的一個background process,默認數量1個,最多10個。參數為db_writer_processes dbwr的作用: ·通過LRU算法管理數據緩沖區,將dirty buffer寫入到datafile中,維護數據緩沖區的clean,以使用戶進程總能找到足夠的空閑緩沖區。 ·通過延遲寫數據來優化disk I/O讀寫。 Dbwr writes when: ·no free buffers ·dirty buffer threshold reached ·checkpoint ·tablespace offline ·time out ·drop table/truncate table 2. LGWR(log writer,日志寫入進程) 將redo log buffer寫入redo log file logr的作用: ·管理日志緩沖區,將數據庫的更改寫入日志文件,以便維護數據的一致性,并為數據丟失后進行恢復提供依據。 ·通過延遲寫日志來優化disk I/O讀寫
lgwr writes when: ·3s,commit,redo log buffer 1/3,1M滿時,都會觸發lgwr寫
·beforc dbwn writes 3. ARCH(archiver,歸檔進程) 當數據庫運行在archivelog模式下時,將循環使用的redo log file組在被復寫覆蓋前進行歸檔備份。 arch的作用: ·管理redo log file,歸檔保存因循環復寫而將被覆蓋的log file,為數據丟失后進行恢復提供依據。 Arch works when: ·Redolog file switch 4. CKPT (check point,檢查點進程) 負責通知dbwn和lgwr將dirty buffer寫入disk,以及時消除因dbwn/lgwr延遲寫所造成的數據不一致情況,確保內存中的數據塊被規律地寫入file,并對數據庫數據庫控制文件和數據文件進行更新同步(修改文件時間頭部),以記錄下當前的數據庫結構和狀態。 ckpt的作用: ·及時保證進行延遲寫,防止數據庫出現不一致情況。 ·及時同步各類數據文件,防止各類數據文件出現不一致情況。 Ckpt works when: ·redolog switch ·database shutdown ·alter tablespace begin/end backup ·alter tablespace/datafile readonly ·log_checkpoint_timeout value reached ·log_checkpoint_interval value reached 5. SMON (system monitor,系統監控進程) smon負責對數據庫進行恢復操作,若上次數據庫為非正常關閉,則下次啟動時smon會自動讀取重做日志文件,對數據庫進行恢復,同時還負責在臨時段或臨時表空間中回收不再使用的存儲空間,并將各個表空間中的空間碎片進行合并。 Smon’s works ·clean up臨時空間:真正的臨時段不需要clean up,但某些操作,比如create index產生的臨時段當create index的session不正常終止時,此時需要smon來清理; ·Recovers transactions active against unavailable files: 這個過程和實例啟動時進行的instance crash recovery(自動前滾和回滾)相似,只不過由于實例啟動時某些文件無法訪問,而實例啟動后的某個時間這些文件可以訪問時,smon就會對其執行recover; ·Coalesces free space:如使用字典管理表空間,smon負責將連續的空閑extent合并 ·Performs instance recovery of a failed node in RAC: 當rac的某個節點失敗時,某個剩余的節點會打開失敗節點對應的redo log,進行recover; ·Cleans up OBJ$: obj$是個底層的數據字典,包括所有的數據庫對象信息,很多時候,某些對象被刪除時,由smon進程來clean up 該視圖; ·Shrinks rollback segments:如果設置了optimal size參數,smon進程負責執行回滾段的自動收縮 ·"Offlines" rollback segments:當用戶offline某個回滾段,但此時該回滾斷有active trancsaction,這是回滾段的狀態其實是pending offline,而smon進程會定期的檢查該回滾段的事務是否完成,完成即將其變為offline; 6. PMON (process monitor,進程監控進程) pmon在用戶進程出現故障時進行恢復,清除失效的用戶進程,負責清理內存區域和釋放該進程所使用的資源,同時監控oracle所有background process。 Smon’s works: ·connection在不正常終止時,pmon負責釋放資源,rollback未提交的事務; ·監控后臺進程,如果某些后臺進程不正常終止,則會重啟它(比如dispatcher),或者直接終止實例; 7. RECO(recovery,恢復進程) reco用于分布式數據庫,維持在分布式環境中的數據的一致性。 reco有個主要工作,就是recover那些兩階段提交的但由于網絡或其它原因造成狀態為prepared 的掛起事務。 當某些節點反饋yes給事務協調器可以提交時,但事務協調器還未正式發出可以提交的最后指示時,由于網絡的原因,這些節點失去了和事務協調節點的聯系,此時這些事務就成為了an in-doubt distributed transaction。此時,RECO就負責定期的聯系事務協調器,當聯系到時,就會提交或者回滾這些事務了。 8. LCKn (lock,鎖進程) 在具有并行服務器環境下使用,最大可啟用10個lckn進程,喲娜與實例間的封鎖。 9. Dnnn (dispatcher,調度進程) dnnn存在于MTS體系結構中,負責接受用戶進程的請求,將其放入請求隊列中,并為之分配一個服務進程。 10. server process服務器進程 是用戶進程與服務器交互的橋梁,在oracle server與用戶之間,處理用戶啟動用戶進程(如sqlplus)后對oracle server的連接請求,用戶進程不能直接連接oracle服務器,而必須通過服務器進程進行交互。 Service process的作用: ·分析并執行用戶提交的sql語句 ·在sga區緩存中搜索用戶進程訪問的數據,不存在則訪問disk并將其復制在緩存中 ·將數據返回給用戶進程。 服務器進程的分類: ·Dedicated server process (默認)每個用戶單獨一份PGA ·MultiTreaded server process????? 多用戶共用一份PGA SQL>select server,count(*) from v$session group by server;查詢當前服務器運行模式 11. Uer process (用戶進程) 由用戶創建,通過服務器進程連接數據庫,將用戶的sql語句傳遞給服務器進程并接收運行結果反饋給用戶

總結

以上是生活随笔為你收集整理的oracle 后台进程(background process)详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。