1、Oracle 伺服器是一個資料管理系統(RDBMS),它提供開放的、全面的近乎完美的資訊管理。Oracle 是由一個 Oracle 執行個體和一個 Oracle 資料庫組成。
Oracle 伺服器由兩大部分組成,Oracle 資料庫和 Oracle 執行個體。
(1)Oracle 資料庫是位於硬碟上實際存放資料的檔案,這些檔案組織在一起成為一個邏輯整體,即為 Oracle 資料庫。因此在 Oracle 看來,資料庫是指硬碟上檔案的邏輯集合,必須要在記憶體裡的執行個體合作才能對外提供資料管理服務。
(2)Oracle 執行個體是位於實體記憶體類的資料結構,它有一個共用的記憶體池和多個後台進程所組成,共用的記憶體池可以被所有進程訪問,使用者如果要存取資料庫裡的資料(也就是硬碟上的檔案)就必須通過執行個體才能實現,不能直接讀取硬碟上的檔案檔案。執行個體可以操作資料庫,在任何時刻一個執行個體只能與一個資料庫關聯,但是一個資料庫有可能被多個執行個體訪問。
一個資料庫檔案讀到記憶體中,就是一個執行個體 Instance,一個 Instance 會把所佔用的記憶體分為多個塊,我們所操作的資料庫就是操作記憶體中的 Instance ,不能直接操作資料庫。當我們通過 JDBC 獲得 Connection 串連到這個 Instance 時,Instance 會為這個 Connection 開闢一個記憶體(PGA),有一個串連進來就會有一個 PGA。一個Instance 中可以有多個 PGA,但是只有一個全域 SGA 區段。Instance 和資料庫可以是多對一的關係。也就是一個資料庫可以對應多個 Instance ,這就是叢集(RAC),如果一台機器崩潰,也就是一個 Instance 癱瘓,我們可以用另外一個主機中的 Instance 繼續提供資料庫連接。
我們操作資料庫只是在 PGA 中進行增刪改查,當我們將操作 commit 時,是將操作提交給了 SGA 中,SGA 還是在記憶體中,至於 SGA 中的資料什麼時候提交到資料庫是由伺服器決定。這種方式叫兩階段交易認可。只要資料還在 SGA 中,我們就還有機會修改資料,這就是閃回的原理。
2、資料表空間,資料表空間為邏輯概念,資料檔案為物理概念。資料表空間由多個資料檔案組成,資料檔案只能屬於一個資料表空間。資料表空間對應著執行個體中的 PGA。我們常用的資料表空間為 users 資料表空間。
3、Oracle 相關服務:OracleDBConsoleorcl: 管理 Oracle 的 Web 介面伺服器。OracleJobSchedulerORCL:Oracle 的定時服務。OracleOraDb10g_home1liSQL*Plus:是一個介面畫操作的 Web 服務器。OracleOraDb10g_home1TNSListener:Oracle 客戶機監聽服務。客戶機要是串連 Oracle 就必須啟動該服務。比如通過 JDBC 串連 Oracle(jdbc:oralce:this:@localhost:1521:orcl)效能比較低,通過 Oracle 客戶機串連 Oracle(jdbc:oracle:oci:@loaclhost:1521:orcl)效能要高很多。