標籤:har 空閑 無法 leo oracle 引用 rdf nologging file
前言:Oracle 體繫結構其實就是指oracle 伺服器的體繫結構,資料庫伺服器主要由三個部分組成 管理資料庫的各種軟體工具(sqlplus,OEM等),執行個體(一組oracle 後台進程以及伺服器中分配的共用記憶體地區),資料庫(是基於磁碟的各種物理檔案的集合,如資料檔案,控制檔案,記錄檔,參數檔案,歸檔記錄檔) 執行個體與資料庫之間的關係 (執行個體用於管理和控制資料庫,資料庫為執行個體提供資料,一個資料庫可以被多個執行個體轉載和開啟,而一個執行個體在其生存周期內只能轉載和開啟一個資料庫)
1.資料庫
1.1 資料庫從邏輯角度分析資料庫構成--資料表空間、段、資料區、資料區塊,面向使用者的劃分方式
資料表空間:數據庫最大的邏輯 劃分地區,可存放資料表,索引,復原段等資料對象,任何資料對象在建立時都必須有指定的資料表空間 資料表空間與資料檔案的關係是一個資料表空間由一個或多個資料檔案組成一個資料檔案只屬於一個資料表空間,oracle資料的儲存空間在邏輯上表現為資料表空間,在物理上表現為資料檔案(資料表空間相當於檔案夾)
分類:system資料表空間(存放系統內部表和資料字典資料)
SYAAUX 資料表空間,系統資料表空間的輔助資料表空間,降低system資料表空間的負荷,存放字典以外的資料對象
UNDO 資料表空間,存放撤銷資訊
USER 資料表空間:存放用於建立的資料對象,比如SCOTT,一般不同的應用系統的資料應該存放在不同的資料表空間,而不同的資料表空間應該存放在不同的磁碟上,從而減少I/O 衝突,提更應用系統的操作系能。
段:它不是儲存空間的分配單位,但是一個獨立的額邏輯儲存結構,用於儲存表,索引等,一個資料區段只屬於一個特定的資料對象,段內的資料區可以不連續,並且跨越多個檔案,
資料區: 資料區是由連續的資料區塊組成的 ,資料區是儲存分配的最小單位,分配儲存空間是以資料區為單位的,使用資料區的目的是為了儲存特定資料類型的資料,一個oracle對象包含至少一個資料區
資料區塊:邏輯儲存結構中最小的邏輯單位,也是執行資料庫輸入輸出操作的最小儲存單位。資料區塊有塊頭,表目錄,行目錄組成塊頭,存放整個資料區塊的引導資訊,空餘空間是未用資訊用於資料的插入和更新,行資料存放表資料和索引
1.2 實體儲存體結構
邏輯上資料是儲存在資料表空間中,而物理上儲存在資料表空間所包含的物理檔案中,實體儲存體結構是指由多種物理檔案組成,主要有資料檔案,控制檔案,重做記錄檔,歸檔檔案,參數檔案,口令檔案和警告記錄檔
資料檔案
在資料表空間中建立資料對象時,使用者無法決定使用哪個資料檔案進行儲存,有oracle系統負責分配實體儲存體空間。一個資料對象可以全部儲存在一個資料檔案中,也可以分布儲存在同一個資料表空間的多個資料檔案中。讀資料是oracle系統將資料檔案中的資料存放區在高速 緩衝區,若使用者請求資料不再高速緩衝區,則要將資料檔案讀取到緩衝區,資料更新時不會立即儲存在資料檔案中,而是由後台進程DBWR 決定何時寫入檔案,減少磁碟的I/O操作,提高系統的響應效能。(系統資料檔案,撤銷資料檔案,使用者資料檔案)
控制檔案
控制檔案是一個二進位檔案,記錄了資料庫的物理結構,主要包含資料庫名,資料庫檔案與記錄檔的名字和位置,資料庫建立的日期,系統更改號,檢查點,歸檔狀態等資訊。它一般在oracle系統安裝時或者建立資料庫時自動建立,控制檔案存放的位置有伺服器參數檔案spfileorcl.ora 的control_files 參數值來決定。oracle 執行個體在啟動時,首先訪問的是初始化參數檔案spfile,然後為系統全域區(SGA)分配記憶體,這時執行個體處於安裝狀態,控制檔案處於開啟狀態,此時oracle會自動讀取控制檔案,若正常則讀取所有資料檔案和記錄檔供使用者訪問,若控制檔案資訊錯誤,將無法正常啟動執行個體。為防止控制檔案損壞,系統會有兩到三個相同的控制檔案記錄相同資訊。
記錄檔--重做日誌和歸檔日誌
記錄檔的功能是記錄對資料所做的修改,如果資料出現問題,可以通過記錄檔對得到的未經處理資料進行修改。
重做記錄檔:當使用者在提交commit命令時,資料庫首先將操作記錄在記錄檔中,所以記錄檔記錄了資料庫所發生的所有更改資訊。若將資料表空間設定為NOLOGGING時,就不會產生日誌資訊,但是這樣破壞了日誌的完整性,日誌線程由若干個日誌組構成,每個日誌組由一個或多個記錄檔構成。日誌資訊開始是存放在重做日誌緩衝區的,當資訊滿三分之一時,由LGWR 進程寫入記錄檔中。
歸檔記錄檔:當所有記錄檔都被寫入一遍後,進程會再次轉向第一個日誌組,為避免日誌資訊被覆蓋,需要進行歸檔處理解決問題。在進行歸檔操作時,日誌寫入進程(ARCH)需要歸檔完成之後才能覆寫日誌,延遲了系統回應時間,而且歸檔佔用了大量磁碟空間,影響整體效能,所以oracle 預設不採用歸檔模式。
伺服器參數檔案(SPFILE):
SPFILE是二進位檔案,用來記錄資料庫的基本參數資訊(比如資料庫名,控制檔案所在路徑,日誌緩衝區的大小,資料區塊的大小等),啟動資料庫之前,系統會讀取SPFILE 初始化參數配置和啟動執行個體,SPFILE 由系統自動建立名為SPFILEsid.ora ,sid 為所建立的資料庫執行個體名,SPFILE 由系統維護,儘可能不直接對檔案進行編輯,但可通過企業管理器(OEM)或 ALTER SYSTEM 命令修改,這樣參數會自動寫進檔案。
密碼檔案:密碼檔案用於驗證sysdba 許可權的二進位檔案,密碼檔案命名格式一般為PWD<sid> ,建立密碼檔案後,可以使用remote_login_passwordfile 來控制密碼檔案的使用狀態:NONE 表示只需通過作業系統的驗證,SHARED 表示多個資料庫執行個體都可以採用此密碼驗證,EXCLUSIVE 表示只有一個資料庫執行個體可以用此密碼檔案驗證
警告檔案
警告檔案時儲存在oracle 系統的文字檔(alter_orcl.log)用來記錄系統的運行資訊和錯誤訊息
追蹤檔案
追蹤檔案包括後台進程追蹤檔案和使用者進程追蹤檔案,檔案命名格式一般為<sid>_<processname>_<spid>.trc
2.執行個體
執行個體是一組oracle後台和伺服器中的分配的共用記憶體地區。通過執行個體來訪問和控制磁碟中的資料檔案,當使用者串連資料庫時其實串連的是資料庫執行個體,用資料庫伺服器管理和操作資料庫時,
其實是執行個體作為中間樞紐,負責資料庫和資料庫伺服器的通行。
2.1系統全域區(SGA 共用記憶體地區): SGA 中的資源可以被多個使用者使用,SGA主要由高速緩衝區,共用池,重做日誌緩衝區,java池和大型池等記憶體結構組成。SGA隨著資料庫的執行個體啟動而載入到記憶體中,當資料庫關閉時,SGA地區就消失了
2.1.1高速資料緩衝區:一般存放最近使用的資料,分為三部分 髒資料區(已被修改,等待刪除或寫進資料檔案的資料 ),空閑區(不包含任何資料),保留區(正在被使用者使用或者被明確保留下來被用來做將來使用的資料)
2.1.2 重做日誌緩衝區:用來存放對資料庫操作時所產生的日誌資訊,當檢查點發生或重做日誌緩衝區中資訊達到一定峰值時,有LGWR寫入到重做記錄檔中。所以較大的重做日誌緩衝區能減少對重做記錄檔的I/O讀寫次數,對資料的整體效能有一定影響。
2.1.3共用池
共用池是SGA保留的記憶體地區,用於緩衝SQL語句,PL/SQL語句,資料字典,資源鎖、字元集及其他控制結構等,共用池包含庫高速緩衝區(SQL..)和字典高速緩衝區(資料字典..)
2.1.4 大型池
大興池不是SGA的必須記憶體結構,執行個體需要大型池是用來減輕共用池的訪問壓力,比如,資料備份或恢複時或模擬非同步I/o功能時,作為I/o 緩衝區使用。執行大量排序操作時,並行查詢時
2.1.5 流池
用於資料庫之間的資訊共用
2.1.6 java 池
給java虛擬機器使用的記憶體地區,支援在資料庫中運行java 程式包
2.1.7後台進程
後台進程是執行個體的重要組成部分。其中SMON(系統監控進程),PMOM(進程監控進程),DBWR(資料寫入程式),CKPT(檢查點進程) 這5個後台進程必須正常啟動,否則將導致資料庫執行個體的崩潰。其他還有LGWR(日誌寫入進程),ARCH(歸檔進程),,LCKN(鎖定進程),RECO(恢複進程),DNNN(調度進程),SNNP(快照進程)
3.管理資料庫的各種軟體-- 前台進程
3.1 程式全域區(PGA)(非共用記憶體地區)
程式全域區也可稱做使用者進程全域區,他的記憶體區是私人的,一個伺服器處理序,只能訪問屬於它自己的那部分PGA資源,各伺服器資源總和即為執行個體的PGA 大小。
前台進程:使用者進程(能夠產生或執行SQL語句的應用程式,如SQL*Plus等,會話是指使用者進程和執行個體實現串連後形成的互動方式,一般使用者發出請求,資料庫執行個體為使用者返迴響應訊息)
伺服器處理序(處理解析會話過程中使用者向資料庫執行個體發出的SQL語句或SQL*Plus 命令,對於專用伺服器模式,用戶端進程和Oracle伺服器處理序是一一對應的,而在共用伺服器模式下,一個Oracle伺服器處理序可能同時服務多個用戶端進程)
常用資料字典 引用http://www.cnblogs.com/liuguosong/p/5808642.html
Oracle 體繫結構chapter2