回覆列表
  • 1 # 手機使用者86177149106

    DBWR程序:該程序執行將緩衝區寫入資料檔案,是負責緩衝儲存區管理的一個ORACLE後臺程序。當緩衝區中的一緩衝區被修改,它被標誌為“弄髒”,DBWR的主要任務是將“弄髒”的緩衝區寫入磁碟,使緩衝區保持“乾淨”。由於緩衝儲存區的緩衝區填入資料庫或被使用者程序弄髒,未用的緩衝區的數目減少。當未用的緩衝區下降到很少,以致使用者程序要從磁碟讀入塊到記憶體儲存區時無法找到未用的緩衝區時,DBWR將管理緩衝儲存區,使使用者程序總可得到未用的緩衝區。

      ORACLE採用LRU(LEAST RECENTLY USED)演算法(最近最少使用演算法)保持記憶體中的資料塊是最近使用的,使I/O最小。在下列情況預示DBWR 要將弄髒的緩衝區寫入磁碟:

      當一個伺服器程序將一緩衝區移入“弄髒”表,該弄髒表達到臨界長度時,該服務程序將通知DBWR進行寫。該臨界長度是為引數DB-BLOCK-WRITE-BATCH的值的一半。

      當一個伺服器程序在LRU表中查詢DB-BLOCK-MAX-SCAN-CNT緩衝區時,沒有查到未用的緩衝區,它停止查詢並通知DBWR進行寫。出現超時(每次3秒),DBWR 將通知本身。當出現檢查點時,LGWR將通知DBWR.在前兩種情況下,DBWR將弄髒表中的塊寫入磁碟,每次可寫的塊數由初始化引數DB-BLOCK- WRITE-BATCH所指定。如果弄髒表中沒有該引數指定塊數的緩衝區,DBWR從LUR表中查詢另外一個弄髒緩衝區。

      如果DBWR在三秒內未活動,則出現超時。在這種情況下DBWR對LRU表查詢指定數目的緩衝區,將所找到任何弄髒緩衝區寫入磁碟。每當出現超時,DBWR查詢一個新的緩衝區組。每次由DBWR查詢的緩衝區的數目是為寢化引數DB-BLOCK- WRITE-BATCH的值的二倍。如果資料庫空運轉,DBWR最終將全部緩衝區儲存區寫入磁碟。

      在出現檢查點時,LGWR指定一修改緩衝區表必須寫入到磁碟。DBWR將指定的緩衝區寫入磁碟。

      在有些平臺上,一個例項可有多個DBWR.在這樣的例項中,一些塊可寫入一磁碟,另一些塊可寫入其它磁碟。引數DB-WRITERS控制DBWR程序個數。

      LGWR程序:該程序將日誌緩衝區寫入磁碟上的一個日誌檔案,它是負責管理日誌緩衝區的一個ORACLE後臺程序。LGWR程序將自上次寫入磁碟以來的全部日誌項輸出,LGWR輸出:

      當用戶程序提交一事務時寫入一個提交記錄。

      每三秒將日誌緩衝區輸出。

      當日志緩衝區的1/3已滿時將日誌緩衝區輸出。

      當DBWR將修改緩衝區寫入磁碟時則將日誌緩衝區輸出。

      日誌緩衝區是一個迴圈緩衝區。當LGWR將日誌緩衝區的日誌項寫入日誌檔案後,伺服器程序可將新的日誌項寫入到該日誌緩衝區。LGWR 通常寫得很快,可確保日誌緩衝區總有空間可寫入新的日誌項。

      注意:有時候當需要更多的日誌緩衝區時,LWGR在一個事務提交前就將日誌項寫出,而這些日誌項僅當在以後事務提交後才永久化。

      ORACLE使用快速提交機制,當用戶發出COMMIT語句時,一個COMMIT記錄立即放入日誌緩衝區,但相應的資料緩衝區改變是被延遲,直到在更有效時才將它們寫入資料檔案。當一事務提交時,被賦給一個系統修改號(SCN),它同事務日誌項一

      起記錄在日誌中。由於SCN記錄在日誌中,以致在並行伺服器選項配置情況下,恢復操作可以同步。

      CKPT程序:該程序在檢查點出現時,對全部資料檔案的標題進行修改,指示該檢查點。在通常的情況下,該任務由LGWR執行。然而,如果檢查點明顯地降低系統性能時,可使CKPT程序執行,將原來由LGWR程序執行的檢查點的工作分離出來,由 CKPT程序實現。對於許多應用情況,CKPT程序是不必要的。只有當資料庫有許多資料檔案,LGWR在檢查點時明顯地降低效能才使CKPT執行。 CKPT程序不將塊寫入磁碟,該工作是由DBWR完成的。

      初始化引數CHECKPOINT-PROCESS控制CKPT程序的使能或使不能。預設時為FALSE,即為使不能。

      SMON程序:該程序例項啟動時執行例項恢復,還負責清理不再使用的臨時段。在具有並行伺服器選項的環境下,SMON對有故障CPU或例項進行例項恢復。SMON程序有規律地被呼醒,檢查是否需要,或者其它程序發現需要時可以被呼叫。

      PMON程序:該程序在使用者程序出現故障時執行程序恢復,負責清理記憶體儲區和釋放該程序所使用的資源。例:它要重置活動事務表的狀態,釋放封鎖,將該故障的程序的ID從活動程序表中移去。PMON還週期地檢查排程程序(DISPATCHER)和伺服器程序的狀態,如果已死,則重新啟動(不包括有意刪除的程序)。

      PMON有規律地被呼醒,檢查是否需要,或者其它程序發現需要時可以被呼叫。

      RECO程序:該程序是在具有分散式選項時所使用的一個程序,自動地解決在分散式事務中的故障。一個結點RECO後臺程序自動地連線到包含有懸而未決的分散式事務的其它資料庫中,RECO自動地解決所有的懸而不決的事務。任何相應於已處理的懸而不決的事務的行將從每一個數據庫的懸掛事務表中刪去。

      當一資料庫伺服器的RECO後臺程序試圖建立同一遠端伺服器的通訊,如果遠端伺服器是不可用或者網路連線不能建立時,RECO自動地在一個時間間隔之後再次連線。

      RECO後臺程序僅當在允許分散式事務的系統中出現,而且DISTRIBUTED ?C TRANSACTIONS引數是大於0.

      ARCH程序:該程序將已填滿的線上日誌檔案複製到指定的儲存裝置。當日志是為ARCHIVELOG使用方式、並可自動地歸檔時ARCH程序才存在。

      LCKn程序:是在具有並行伺服器選件環境下使用,可多至10個程序(LCK0,LCK1……,LCK9),用於例項間的封鎖。

      Dnnn程序(排程程序):該程序允許使用者程序共享有限的伺服器程序(SERVER PROCESS)。沒有排程程序時,每個使用者程序需要一個專用服務程序(DEDICATEDSERVER PROCESS)。對於多線索伺服器(MULTI-THREADED SERVER)可支援多個使用者程序。如果在系統中具有大量使用者,多線索伺服器可支援大量使用者,尤其在客戶_伺服器環境中。

      在一個數據庫例項中可建立多個排程程序。對每種網路協議至少建立一個排程程序。資料庫管理員根據作業系統中每個程序可連線數目的限制決定啟動的排程程式的最優數,在例項執行時可增加或刪除排程程序。多線索伺服器需要SQL*NET版本2或更後的版本。在多線索伺服器的配置下,一個網路接收器程序等待客戶應用連線請求,並將每一個傳送到一個排程程序。如果不能將客戶應用連線到一排程

      程序時,網路接收器程序將啟動一個專用伺服器程序。該網路接收器程序不是ORACLE例項的組成部分,它是處理與ORACLE有關的網路程序的組成部分。在例項啟動時,該網路接收器被開啟,為使用者連線到ORACLE建立一通訊路徑,然後每一個排程程序把連線請求的排程程序的地址給予於它的接收器。當一個使用者程序作連

      接請求時,網路接收器程序分析請求並決定該使用者是否可使用一排程程序。如果是,該網路接收器程序返回該排程程序的地址,之後使用者程序直接連線到該排程程序。有些使用者程序不能排程程序通訊(如果使用SQL*NET以前的版本的使用者),網路接收器程序不能將如此使用者連線到一排程程序。在這種情況下,網路接收器建立一個專用伺服器程序,建立一種合適的連線.

    即主要的有:DBWR,LGWR,SMON 其他後臺程序有PMON,CKPT等

  • 中秋節和大豐收的關聯?
  • 託雷拉能成為下一個坎特嗎?