Oracle體繫結構就是圍繞這張圖展開的,要想深入瞭解oracle,就必須把這張圖搞明白。
如圖:
一、基本組成:
Oracle server:
一般情況下是一個instance和一個database組成
1個instance只能對應一個資料庫。
特殊:1個資料庫可以有多個instance(rac) 一台伺服器上同時可裝多套版本的資料庫軟體,每個資料庫軟體可建多個資料庫,但是每個資料庫只對應一個instance,也可以理解成每個資料庫只有一個SID 。 利用DBCA建出的每個庫都是相對獨立的,在同一伺服器上如果建立多庫必須將環境變數的參數檔案做區分,並且在對執行個體切換時需如下 操作: connect 使用者名稱/密碼@執行個體的服務名
Oracle Instance:
是由記憶體(SGA)和後台進程(backupground Process)組成
通過instance來訪問database
一個執行個體只能開啟一個資料庫
Oracle database:
資料檔案(Data files):
資料檔案永遠儲存資料庫的資料,包括資料字典、使用者資料(表、索引、簇)、undo資料等
重做日誌(Redo log):
“先記後寫”
重做日誌用於記錄資料庫的變化,當進行常式恢複或介質恢複時需要使用重做日誌
執行DDL或DML操作時,事物變化會被寫到重做日誌緩衝區,而在特定的時刻LGWR會將重做日誌緩衝區中的內容寫入重做日誌。
控制檔案(Control file)
控制檔案用於記錄和維護資料庫的物理結構,並且每個Oracle資料庫至少要包含一個控制檔案。
歸檔日誌(Archive log):
是非活動(Inactive)重做日誌的備份。
口令檔案(Password file):
用於驗證特權使用者(具有SYSDBA、SYSOPER許可權的特殊資料庫使用者)
參數檔案(Parameter file):
用於定義啟動執行個體所需要的初始化參數,包括文本參數檔案(pfile)和伺服器參數檔案(spfile)
User and Server process :
在執行sql語句時產生的進程,每一個串連,oracle server建立一個session,產生一個server process,在client發起一個connection時就產生了一個user process。
體繫結構可以分為,database結構和instance結構
如下結構:
二、instance結構詳解
1、 記憶體結構
主要包括sga(system global area)和pga(program global area)
Pga是當程式起來時,給server process用(不包含在instance裡面,這裡不做重點討論)
SGA(System Global Area)由一組記憶體結構組成,它是由所有使用者進程共用的一塊記憶體地區。啟動常式時,Oracle自動分配SGA,關閉常式時,oracle自動釋放SGA所佔用的記憶體空間。
下面是dave哥關於sga詳解:
http://blog.csdn.net/tianlesoftware/article/details/5594080
Sga包括,share pool,db buffer cache,redo log buffer,large pool,java pool。
在9i 中我們都知道在管理Oracle中使用動態SGA時,Granule的大小是和SGA的大小有關係。
SGA 分配的最小單元為一個granule.Oracle SGA的大小總是granule的整數倍,即分配是以整數個granule來分配的。
9i 中的規則如下:
linux/unix
SGA <=128 M granule 4M
SGA >128M granule 16M
Windows
SGA <=128 M granule 4M
SGA >128M granule 8M
10g 中的分配規則為
linux/unix
SGA <=1G granule 4M
SGA >1G granule 16M
Windows
SGA <=1G granule 4M
SGA >1G granule 8M
SQL> select component, granule_size from v$sga_dynamic_components;
COMPONENT GRANULE_SIZE
---------------------------------------------------------------- ------------
shared pool 4194304
large pool 4194304
java pool 4194304
streams pool 4194304
DEFAULT buffer cache 4194304
KEEP buffer cache 4194304
RECYCLE buffer cache 4194304
DEFAULT 2K buffer cache 4194304
DEFAULT 4K buffer cache 4194304
DEFAULT 8K buffer cache 4194304
DEFAULT 16K buffer cache 4194304
DEFAULT 32K buffer cache 4194304
ASM Buffer Cache 4194304
13 rows selected.
Elapsed: 00:00:00.06
SQL>
SQL> desc v$sga_dynamic_components;
Name Type
--------------------------------------------------------
COMPONENT VARCHAR2(64)
CURRENT_SIZE NUMBER
MIN_SIZE NUMBER
MAX_SIZE NUMBER
USER_SPECIFIED_SIZE NUMBER
OPER_COUNT NUMBER
LAST_OPER_TYPE VARCHAR2(13)
LAST_OPER_MODE VARCHAR2(9)
LAST_OPER_TIME