oracle的三種型別的程式
oracle有三種程式---使用者程式,伺服器程式和後臺程式。
下面分別講講這三種程式:
(1)使用者程式:使用者程式是一個需要和oracle伺服器進行互動的程式。當使用者執行一個應用程式準備向資料庫伺服器傳送請求時,即建立了使用者程式(如客戶端的SQLPLUS程式),使用者程式位於客戶端,伺服器程式和後臺程式位於伺服器端。
(2)伺服器程式:伺服器程式用於處理連線到該例項的使用者程式的請求,當使用者連線至oracle資料庫例項建立會話時,即產生伺服器程式,伺服器程式需要消耗pga。
(3)後臺程式:後臺程式是oracle資料庫為了保持最佳系統效能和協調多個使用者請求而設定的,oracle例項啟動時即建立了一系列的後臺程式,oracle例項常見的後臺程式包括SMON,PMON,DBWR,LGWR,ARC,CKPT。
下面簡要講講oracle的後臺程式:
(1)SMON系統監控程式,實時監控整個oracle的狀況。
.例程恢復
-前滾重做日誌中的更改
-開啟資料庫供使用者訪問
-回退未提交的事務處理
.合併空閒空間
.回收臨時段
(2)PMON程式監控程式,監控使用者程式是否正常
.回退事務處理
.釋放鎖
.釋放其他資源
.重新啟動已失效的排程程式
(3)DBWR資料寫入程式,將修改的資料寫回到資料檔案
在以下情況寫入:
.出現檢查點
.當資料緩衝區達到閾值
.沒有空閒緩衝區
.出現超時
.執行了RAC ping請求
.表空間處於offline狀態
.表空間處於read only狀態
.對錶執行drop或truncate操作
.對錶空間執行begin backup操作
(4)LGWR日誌寫入程式,負責將日誌緩衝區中的日誌資料寫入日誌檔案
LGWR在以下情況寫入:
.提交時
.三分之一填滿
.有1MB的重做時
.每隔3秒
.DBWn寫入前
(5)CKPT檢查點程式,在例項崩潰後提交快速恢復的程式
.在發生檢查點的時候發訊號給DBWn
.使用檢查點資訊更新資料檔案頭和控制檔案
如果想要檢視這些後臺程式有兩種方法:
(1)在終端輸入ps -ef|grep ora_
[root@localhost ~]# ps -ef |grep ora_
oracle 20033 1 0 23:34 ? 00:00:00 ora_pmon_orcl
oracle 20035 1 0 23:34 ? 00:00:00 ora_vktm_orcl
oracle 20039 1 0 23:34 ? 00:00:00 ora_gen0_orcl
oracle 20041 1 0 23:34 ? 00:00:00 ora_diag_orcl
oracle 20044 1 0 23:34 ? 00:00:00 ora_dbrm_orcl
oracle 20046 1 0 23:34 ? 00:00:00 ora_psp0_orcl
oracle 20048 1 0 23:34 ? 00:00:00 ora_dia0_orcl
oracle 20050 1 0 23:34 ? 00:00:00 ora_mman_orcl
oracle 20054 1 0 23:34 ? 00:00:00 ora_dbw0_orcl
oracle 20056 1 0 23:34 ? 00:00:00 ora_lgwr_orcl
oracle 20058 1 0 23:34 ? 00:00:00 ora_ckpt_orcl
oracle 20060 1 0 23:34 ? 00:00:00 ora_smon_orcl
oracle 20062 1 0 23:34 ? 00:00:00 ora_reco_orcl
oracle 20064 1 0 23:34 ? 00:00:00 ora_mmon_orcl
oracle 20067 1 0 23:34 ? 00:00:00 ora_mmnl_orcl
oracle 20069 1 0 23:34 ? 00:00:00 ora_d000_orcl
oracle 20071 1 0 23:34 ? 00:00:00 ora_s000_orcl
oracle 20186 1 0 23:34 ? 00:00:00 ora_arc0_orcl
oracle 20188 1 0 23:34 ? 00:00:00 ora_arc1_orcl
oracle 20190 1 0 23:34 ? 00:00:00 ora_arc2_orcl
oracle 20192 1 0 23:34 ? 00:00:00 ora_arc3_orcl
oracle 20195 1 0 23:34 ? 00:00:00 ora_qmnc_orcl
oracle 20223 1 0 23:34 ? 00:00:00 ora_cjq0_orcl
oracle 20242 1 0 23:34 ? 00:00:00 ora_vkrm_orcl
oracle 20283 1 0 23:34 ? 00:00:00 ora_q000_orcl
oracle 20285 1 0 23:34 ? 00:00:00 ora_q001_orcl
oracle 21103 1 0 23:44 ? 00:00:00 ora_smco_orcl
oracle 21111 1 0 23:44 ? 00:00:00 ora_w000_orcl
root 21361 21341 0 23:48 pts/4 00:00:00 grep ora_
(2)在sqlplus檢視v$process動態效能檢視:
SYS@orcl 04-SEP-14>select pname,spid from v$process;
PNAME SPID
----- ------------------------
PMON 20033
VKTM 20035
GEN0 20039
DIAG 20041
DBRM 20044
PSP0 20046
DIA0 20048
MMAN 20050
DBW0 20054
LGWR 20056
PNAME SPID
----- ------------------------
CKPT 20058
SMON 20060
RECO 20062
MMON 20064
MMNL 20067
D000 20069
S000 20071
20184
ARC0 20186
ARC1 20188
ARC2 20190
PNAME SPID
----- ------------------------
ARC3 20192
QMNC 20195
20216
20219
CJQ0 20223
20225
20227
20229
20231
20233
VKRM 20242
PNAME SPID
----- ------------------------
Q000 20283
SMCO 21103
W000 21111
20465
20270
Q001 20285
20481
20507
J000 22588
J001 22590
22383
PNAME SPID
----- ------------------------
22387
22389
46 rows selected.
下面分別講講這三種程式:
(1)使用者程式:使用者程式是一個需要和oracle伺服器進行互動的程式。當使用者執行一個應用程式準備向資料庫伺服器傳送請求時,即建立了使用者程式(如客戶端的SQLPLUS程式),使用者程式位於客戶端,伺服器程式和後臺程式位於伺服器端。
(2)伺服器程式:伺服器程式用於處理連線到該例項的使用者程式的請求,當使用者連線至oracle資料庫例項建立會話時,即產生伺服器程式,伺服器程式需要消耗pga。
(3)後臺程式:後臺程式是oracle資料庫為了保持最佳系統效能和協調多個使用者請求而設定的,oracle例項啟動時即建立了一系列的後臺程式,oracle例項常見的後臺程式包括SMON,PMON,DBWR,LGWR,ARC,CKPT。
下面簡要講講oracle的後臺程式:
(1)SMON系統監控程式,實時監控整個oracle的狀況。
.例程恢復
-前滾重做日誌中的更改
-開啟資料庫供使用者訪問
-回退未提交的事務處理
.合併空閒空間
.回收臨時段
(2)PMON程式監控程式,監控使用者程式是否正常
.回退事務處理
.釋放鎖
.釋放其他資源
.重新啟動已失效的排程程式
(3)DBWR資料寫入程式,將修改的資料寫回到資料檔案
在以下情況寫入:
.出現檢查點
.當資料緩衝區達到閾值
.沒有空閒緩衝區
.出現超時
.執行了RAC ping請求
.表空間處於offline狀態
.表空間處於read only狀態
.對錶執行drop或truncate操作
.對錶空間執行begin backup操作
(4)LGWR日誌寫入程式,負責將日誌緩衝區中的日誌資料寫入日誌檔案
LGWR在以下情況寫入:
.提交時
.三分之一填滿
.有1MB的重做時
.每隔3秒
.DBWn寫入前
(5)CKPT檢查點程式,在例項崩潰後提交快速恢復的程式
.在發生檢查點的時候發訊號給DBWn
.使用檢查點資訊更新資料檔案頭和控制檔案
如果想要檢視這些後臺程式有兩種方法:
(1)在終端輸入ps -ef|grep ora_
[root@localhost ~]# ps -ef |grep ora_
oracle 20033 1 0 23:34 ? 00:00:00 ora_pmon_orcl
oracle 20035 1 0 23:34 ? 00:00:00 ora_vktm_orcl
oracle 20039 1 0 23:34 ? 00:00:00 ora_gen0_orcl
oracle 20041 1 0 23:34 ? 00:00:00 ora_diag_orcl
oracle 20044 1 0 23:34 ? 00:00:00 ora_dbrm_orcl
oracle 20046 1 0 23:34 ? 00:00:00 ora_psp0_orcl
oracle 20048 1 0 23:34 ? 00:00:00 ora_dia0_orcl
oracle 20050 1 0 23:34 ? 00:00:00 ora_mman_orcl
oracle 20054 1 0 23:34 ? 00:00:00 ora_dbw0_orcl
oracle 20056 1 0 23:34 ? 00:00:00 ora_lgwr_orcl
oracle 20058 1 0 23:34 ? 00:00:00 ora_ckpt_orcl
oracle 20060 1 0 23:34 ? 00:00:00 ora_smon_orcl
oracle 20062 1 0 23:34 ? 00:00:00 ora_reco_orcl
oracle 20064 1 0 23:34 ? 00:00:00 ora_mmon_orcl
oracle 20067 1 0 23:34 ? 00:00:00 ora_mmnl_orcl
oracle 20069 1 0 23:34 ? 00:00:00 ora_d000_orcl
oracle 20071 1 0 23:34 ? 00:00:00 ora_s000_orcl
oracle 20186 1 0 23:34 ? 00:00:00 ora_arc0_orcl
oracle 20188 1 0 23:34 ? 00:00:00 ora_arc1_orcl
oracle 20190 1 0 23:34 ? 00:00:00 ora_arc2_orcl
oracle 20192 1 0 23:34 ? 00:00:00 ora_arc3_orcl
oracle 20195 1 0 23:34 ? 00:00:00 ora_qmnc_orcl
oracle 20223 1 0 23:34 ? 00:00:00 ora_cjq0_orcl
oracle 20242 1 0 23:34 ? 00:00:00 ora_vkrm_orcl
oracle 20283 1 0 23:34 ? 00:00:00 ora_q000_orcl
oracle 20285 1 0 23:34 ? 00:00:00 ora_q001_orcl
oracle 21103 1 0 23:44 ? 00:00:00 ora_smco_orcl
oracle 21111 1 0 23:44 ? 00:00:00 ora_w000_orcl
root 21361 21341 0 23:48 pts/4 00:00:00 grep ora_
(2)在sqlplus檢視v$process動態效能檢視:
SYS@orcl 04-SEP-14>select pname,spid from v$process;
PNAME SPID
----- ------------------------
PMON 20033
VKTM 20035
GEN0 20039
DIAG 20041
DBRM 20044
PSP0 20046
DIA0 20048
MMAN 20050
DBW0 20054
LGWR 20056
PNAME SPID
----- ------------------------
CKPT 20058
SMON 20060
RECO 20062
MMON 20064
MMNL 20067
D000 20069
S000 20071
20184
ARC0 20186
ARC1 20188
ARC2 20190
PNAME SPID
----- ------------------------
ARC3 20192
QMNC 20195
20216
20219
CJQ0 20223
20225
20227
20229
20231
20233
VKRM 20242
PNAME SPID
----- ------------------------
Q000 20283
SMCO 21103
W000 21111
20465
20270
Q001 20285
20481
20507
J000 22588
J001 22590
22383
PNAME SPID
----- ------------------------
22387
22389
46 rows selected.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29800581/viewspace-1263763/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle三種集合資料型別的比較Oracle資料型別
- MRP area的三種型別型別
- 盤點構成Oracle RAC軟體的三種型別Oracle型別
- Oracle supplemental log的兩種型別Oracle型別
- Oracle 失敗的6種型別Oracle型別
- 資料中心代理的三種型別型別
- SAP QM 三種型別的Physical Sample型別
- 06-redis的三種特殊型別Redis型別
- 資料更改事件的三種型別事件型別
- 三種輔導型別型別
- DOCTYPE宣告三種型別型別
- 常見的三種沉浸式投影型別型別
- c語言中陣列的三種型別C語言陣列型別
- 5G訊息的三種型別型別
- Redis 中三種特殊的資料型別Redis資料型別
- Flutter Key的原理和使用(三) LocalKey的三種型別Flutter型別
- 五種型別的程式設計師型別程式設計師
- 程式設計師的五種型別程式設計師型別
- 程式設計師的四種型別程式設計師型別
- 5種型別的程式設計師型別程式設計師
- 分析三種型別的物聯網平臺型別
- 三種型別的物聯網平臺分析型別
- 常見的三種HTTP代理服務型別HTTP型別
- PHP中資料型別轉換的三種方式PHP資料型別
- XSD中自定義型別的三種方式型別
- [譯] Scala 型別的型別(三)型別
- 模擬oracle裡的各種型別的壞塊Oracle型別
- 記住Python變數型別的三種方式Python變數型別
- Redis 三種特殊資料型別Redis資料型別
- UIModalPresentationStyle 各種型別的區別UI型別
- sap table 分為三種型別(轉)型別
- Oracle基本資料型別儲存格式淺析(三)——日期型別(三)Oracle資料型別
- Rust 的三種多型性Rust多型
- 住宅代理的兩種型別型別
- redis的幾種型別解析Redis型別
- 建立多種型別的流型別
- 中科三方:詳解SSL證書的幾種型別型別
- 【乾貨分享】Linux系統日誌的三種型別!Linux型別