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)
待續