Oracle專家進階編程學習筆記( 二)
Oracle體繫結構的3個主要組件:
1.檔案:組成資料庫執行個體的5個檔案(參數檔案,控制檔案,資料檔案,臨時資料檔案,重做記錄檔)
2.系統全域地區SGA( System Global Area): Java池,共用池等
3.物理進程與線程: 在資料庫上運行3種不同類型的進程(伺服器server進程,後台backgroud進程,從屬slave進程)
術語解釋:
資料庫: 物理作業系統檔案的集合
執行個體: 一組oracle進程和SGA
二者關係:
一個資料庫可以被多個執行個體裝載mount和開啟open
執行個體可以及時地裝載並開啟一個單獨的資料庫,被執行個體開啟並裝載的資料庫在啟動時不必相同
檔案:
1.參數檔案:
TNSNAMES.ORA, LISTENER.ORA,SQLNET.ORA, PROTOCOL.ORA,NAMES.ORA, SMAN.ORA, LDAP.ORA
(refer to "Oracle Net administrator Guide")
$ORACLE_HOME/DBS/int<ORACLE_SID>.ora: 內容為一系列的變數名和值對
such as:
db_name="wmdb"
db_block_size=8192
control_files=("c:\oradata\control01.ctl","c:\oradata\control02.ctl")
...
其中有一些在Oracle文檔中沒有說明的參數以底線開始
除了在開發環境中設定_TRACE_FILES_PUBLIC=TRUE這個參數外,其他沒有說明的參數最好不要改動
2.資料檔案:
資料庫database-->資料表空間tablespace-->segment段-->extent擴充區-->block塊
1)資料庫由一個或多個資料表空間組成
2)資料表空間由一個或多個資料檔案組成,一個資料表空間有一個或多個段
3)一個段(表,索引等)由多個擴充區組成,段存在於資料表空間中,但在資料表空間中可有多個資料檔案中的資料.
4)一個擴充區是在磁碟上一些連續分配的塊,一個擴充區在一個資料表空間中,而且總是資料表空間中單一的檔案
5)塊是資料庫中最小的配置單位和I/O單元,它的大小在資料庫建立時就固定下來了
3.臨時檔案
當記憶體不足以儲存一個大規模排序操作的中間結果(集),Oracle用臨時檔案來儲存它們,永久資料,如表或索引是不會儲存到臨時檔案中的,但暫存資料表或臨時索引的內容則可能儲存到臨時檔案 中
推薦用本地管理暫存資料表空間來設定資料庫???,例
create temporary tablespace temp
tempfile 'c:\oracle\oradata\walter\temp.dbf'
size 5m
extent management local
uniform size 64k
4.控制檔案
一個相當小的檔案,至多為64M,包含Oracle需要的其他檔案的目錄
資料檔案init<SID>.ora告訴執行個體控制檔案 的位置
控制檔案則把資料庫和聯機重做記錄檔的位置告訴執行個體
控制檔案也向Oracle提供其他資訊,如檢查點,資料庫名稱,資料庫建立的時間戳記,歸檔重做日誌曆史等
5.重做記錄檔
資料的交易記錄,僅在恢複時才使用
1)聯機重做日誌
2)歸檔重做日誌
記憶體結構
1.SGA(System Global Area)
2.PGA(Process Global Area)
3.UGA(User Global Area)