普及一下oracle的基礎知識,總結一下,oracle 是由執行個體和資料庫組成。結構如下:
oracle資料庫由執行個體、資料庫組成:
* 資料庫由資料檔案(包含oracle 資料、索引、表結構等資料)、控制檔案(包括每個表的操作資訊)、記錄檔(資料操作sql語句)、參數檔案、口令檔案、日誌歸檔檔案(歸檔模式下)(伺服器崩潰、硬碟損壞情況下,通過日誌恢複時用)
* 執行個體由 記憶體結構(memory strutct) 和 後台進程(background processor)組成。
記憶體結構組成:
* PGA: Processor Global Area 程式全域區 ,每一個用戶端接入到oracle 伺服器都有一個PGA,用於儲存該客戶單的相關資訊
* SGA: System Global Area 系統全域區,主要是給oracle執行個體使用,包括 shared pool 、 data buffer area , redo log buffer .
共用池(shared pool):
* 包括library cache 、data directory cache 組成,其中 library cache 主要儲存最近的sql 檢查、編譯、執行計畫, 下次有同樣語句過來的時候,可以重用這些,避免重複的檢查編譯執行計畫。 data directory cache 主要儲存資料庫資料表的欄位定義、索引資料等, shared pool 的大小直接影響到資料庫的效能。
data buffer area : 主要儲存使用者對資料的修改,查詢操作。該記憶體地區的大小直接影響資料庫的效能。
redo log buffer area: 主要儲存最近使用者對資料庫的操作記錄,該大小對資料庫效能沒有多大影響
oracle 必須要的後台進程包括:PMON 、 SMON 、 DBWR、 LOGWR、 CKPT、其他,每個作用如下:
*PMON 監控PGA的健康情況,釋放已經死去的PGA,回收資源,管理PGA的生命週期
*SMON 監控SGA的健康情況,收集SGA片段記憶體,監控執行個體健康情況
*DBWR 維護data buffer area 和物理表資料的一致性
*LGWR 維護redo log buffer area 記憶體資料和記錄檔的一致性
*CKPT 設定檢查點,在oracle 執行個體出現問題的時候,可以恢複到執行個體失敗前的情況。
oracle 記憶體結構有 塊、區、段、資料表空間組成,塊是oracle 在記憶體中的最小結構, 區、段、 資料表空間是oracle 依次向上的記憶體結構。快的太小資料管理麻煩,太大,資料片段比較多。具體情況具體分析。
資料表空間是oracle最大的邏輯單位,一個資料表空間只能屬於一個資料庫,一個資料庫可以包含多個資料表空間,但預設包含一個system的資料表空間。建立資料表空間的文法:
複製代碼 代碼如下:CREATE TABLESPACE name
DATAFILE path [SIZE interger M|K]
LOGFILE path
[AUTOEXTEND ON | OFF]
用戶端連結的伺服器配置:
以後補充