Oracle程序和記憶體剖析 一

2021-09-30 02:52:52 字數 1399 閱讀 8698

在學習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接受到指令後需要從記憶體中取得相應資料,...