在學習oracle之前,我們必須先清楚oracle本身運作機制,我們才能深入的去了解和應用它,下面我們一系列的文章來講解oracle是怎麼運作的,文章由淺入深,一步步去深入了解oracle.
本章主要介紹內容:
一,程序的基本組成結構及分類;
二,每種程序的負責功能;
三,記憶體的基本結構;
本章講解有些內容(如引數)是專門針對oracle9i的,這點請注意!
一,程序的結構:
(1)oracle程序的組成結構圖如下(圖一):
單程序,在同一時期,只允許乙個使用者進行例項的訪問,如ms-dos環境下.
多程序在同一時期,允許多個使用者進行例項的訪問,如windows 系列,unix系列.
(2)在多程序環境下,oracle作業系統的基本順序如下:
使用者程序-->服務程序<--後台程序.使用者程序提出操作請求,服務程序響應服務,後台為了效能的考慮而提供必要的服務給服務程序.
(3)oracle最基本的後台程序包括:
dbwr:資料庫寫程序;
lgwr:日誌寫程序;
pmon:程序監視程序;
smon:系統監視程序;
lckn: 鎖程序;
dnnnnn: 排程程序:
snnnnn: 伺服器程序;
ckpt:檢查點程序;
arch:歸檔程序;
reco:恢復程序;
(二)程序的基本功能
(1)使用者程序:產生請求服務的程序,如select語句所產生的程序;
(2)服務程序:響應使用者程序,提供服務的程序;
(3)後台程序:為了提高效能,後台程序輔助處理服務程序。
(4)dbwr:負責資料庫的寫入操作的程序,db_writes可以設定dbwr程序個數。
(5)lgwr:負責日誌的寫入操作;
(6)ckpt:檢查點程序,它可以不存在,一般是當有很多的資料檔案和日誌檔案時,為了提高日誌的寫效能,而啟用該程序,有乙個引數:checkpoint_process可以設定,預設為false,不使用;
(7)dnnnn:排程程序,排程多個程序之間的運作,提高效能,你可以新建,刪除排程程序,在新建資料庫時,也可以設定dnnnn的個數。
(8)其它:其它幾個後台程序就不一一介紹了。
三,oracle的記憶體結構
oracle的記憶體結構如下圖(圖二)
圖二
(1)軟體**區:用於儲存可執行的程式**。
(2)系統全域性區(sga):在資料進行操作的時候,他儲存臨時資料到快取裡面,包括資料,日誌,一些特權資訊這樣的資料字典資訊,等等一切資料庫操作的中間資料。
(3)程式全域性區:儲存單個程序進行操作的資料。
(4)排序區:用於資料庫排序記憶體中的資料,有乙個引數sort_area_size可以設定排序記憶體的大小。
oracle 記憶體與程序
shared pool 1 庫快取 library cache 游標和p 游標不是乙個概念 在找 根據shared pool size 指定的尺寸,可以計算出bucket個數 每乙個bucket都有乙個物件制定 2 資料字典緩衝 記憶體塊組成 chunk chunk是shared pool 中記憶體...
Linux (程序間通訊)共享記憶體剖析
在linux中,每個程序都有屬於自己的程序控制塊 pcb 和位址空間 addr space 並且都有乙個與之對應的頁表,負責將程序的虛擬位址與實體地址進行對映,通過記憶體管理單元 mmu 進行管理。兩個不同的虛擬位址通過頁表對映到物理空間的同一區域,它們所指向的這塊區域即共享記憶體。key 共享識別...
linux核心原理剖析 記憶體定址(一)
最近總想分享點硬核的原創文章出來,一是硬核技術是乙個程式設計師真正應該修煉 的內功 二是修煉硬核技能是通往架構師領域的必經之路。本系列文章將分享關 於linux核心設計原理相關的內容,希望能打通我們的七經八脈,真正領悟底層系 所謂記憶體定址,簡單說來就是cpu接受到指令後需要從記憶體中取得相應資料,...