從今天起準備系統的開始學習Oracle,除了為了應對工作上的迫切需要,也是希望能好好的瞭解Oracle資料庫這個博大精深的東東.
現在想來,以前我對Oracle的應用也就不過是寫寫SQL語句,或者在Java中利用JDBC或者其他封裝的資料庫訪問庫調用別人寫好的預存程序,實在是膚淺的要緊.
Ok,進入正題吧.
今天我從Oracle的體繫結構入手看看Oracle的整個組成,這是目前在網上能找到的關於對Oracle資料庫體繫結構描述的比較好的一幅圖了,它出自於<<Oracle9i Database Administration Fundamentals I>>:
從這幅圖中,我們可以大致看出Oracle資料庫各個組件之間的互動關係,下面我們就該體繫結構中最主要的組件和一些概念進行一些講解。
什麼是Oracle Server?
Oracle Server 是一個比較大的概念,是就指用來進行資訊管理的資料庫管理系統。<<Fundamentals I>>中的給了他一個很正式的定義:a database management system that provides an open,comprehensive, integrated
approach to information management.
而一個Oracle Server又由兩部分組成:Oracle Instance and Oracle Database.
什麼是Oracle Database?
Oracle Database從物理上講,其實就是一堆資料檔案集合,它包含了三種檔案類型:
(1)Data Files 包含了資料庫中實際的資料.
(2)Online Redo Log Files:線上重做日誌記錄了資料庫資料的改變,能夠用來恢複資料.
(3)Control Files:控制檔案包含了維持和驗證資料庫完整性的資訊.
其他的重要的檔案(但他們並不作為Oracle Database一部分)還有:
(1)Parameter File:記錄了資料庫的一些參數資訊,如啟動參數,SGA大小
(2)Password File
(3)Archived Redo Log Files:線上重做日誌大小畢竟是有限的,當都寫滿了的時候,就面臨著2個選擇,第一個就是把以前線上重做日誌從頭擦除開始繼續寫,第二種就是把以前的線上重做日誌先進行備份,然後對被備份的日誌擦除開始寫新的線上Redo File。這種備份的線上重做日誌就是歸檔日誌(Archived Redo Log Files).
:
什麼是Oracle Instance?
Oracle Instance是訪問Oracle Database的一種方式。Instance 和Database的關係是多對一的,一個Instance只能訪問一個Database,而一個Database可以為多個Instance訪問如Oracle RAC.
Instance是由SGA記憶體和後台進程(Backgroud Process)構成,如:
從圖"Overiew of Primary Components"中和Instance結構圖中,我們可以看到有三種進程User Process,Server Process和Background Process,這三種進程到底有什麼區別呢,我在下一篇文章中再好好研究.