【oracle-基礎知識】oracle體系結構

 

作爲Oracle術語,"實例"(instance)和"數據庫"(database)很容易讓人混淆的。下面分別作下解釋:

1、ORACLE實例 = 進程 + 進程所使用的內存(SGA)
實例是一個臨時性的東西,你也可以認爲它代表了數據庫某一時刻的狀態!
2、數據庫 = 數據文件 + 控制文件 + 日誌文件 + 臨時文件
數據庫是永久的,是一個文件的集合。
3、ORACLE實例和數據庫之間的關係
A.臨時性和永久性
B.實例可以在沒有數據文件的情況下單獨啓動 startup nomount , 通常沒什麼意義
C.一個實例在其生存期內只能裝載(alter database mount)和打開(alter database open)一個數據庫
D.一個數據庫可被許多實例同時裝載和打開(即RAC),RAC環境中實例的作用能夠得到充分的體現!

簡單總結一下,如下圖:

 

Oracle database:

一個ORACLE數據庫是數據的集合,被處理成一個單位。一個ORACLE數據庫有一個物理結構和一個邏輯結構。

一、物理數據庫結構(physical database structure)

它是由構成數據庫的操作系統文件所決定。每一個ORACLE數據庫是由幾種類型的文件組成:數據文件、日誌文件、控制文件、口令文件、參數文件等。數據庫的文件爲數據庫信息提供真正的物理存儲。
 
1、數據文件(Data files):

    每一個ORACLE數據庫有一個或多個物理的數據文件(data file)。一個數據庫的數據文件包含全部數據庫數據。邏輯數據庫結構(如表、索引)的數據物理地存儲在數據庫的數據文件中。數據文件有下列特徵:
A、 一個數據文件僅與一個數據庫聯繫;
B、 當數據庫空間用完時,數據文件可以按照預定的設置自動擴展;                                          C、一個表空間(數據庫存儲的邏輯單位)由一個或多個數據文件組成。
     數據文件中的數據在需要時可以讀取並存儲在ORACLE內存儲區中。例如:用戶要存取數據庫一表的某些數據,如果請求信息不在數據庫的內存存儲區內,則從相應的數據文件中讀取並存儲在內存。當修改和插入新數據時,不必立刻寫入數據文件。爲了減少磁盤輸出的總數,提高性能,數據存儲在內存,然後由 ORACLE後臺進程DBWR決定如何將其寫入到相應的數據文件。
2、控制文件(Control file)
控制文件用於記錄和維護數據庫的物理結構,並且每個Oracle數據庫至少要包含一個控制文件。
3、重做日誌(Redo log)

原則:“先記後寫”

每個Oracle數據庫都有兩個或多個重做日誌文件(redo log file)。這組文件作爲一個整體被稱爲數據庫的重做日誌。重做日誌由重做條目(redo record)構成(也被稱爲重做記錄)。

重做日誌用於記錄數據庫的變化,當進行例程恢復或介質恢復時需要使用重做日誌
執行DDL或DML操作時,事物變化會被寫到重做日誌緩衝區,而在特定的時刻LGWR會將重做日誌緩衝區中的內容寫入重做日誌。

重做日誌中的信息只能用於恢復由於系統或介質故障導致的不能被寫入數據文件的數據。例如,如果突然的斷電導致數據庫操作停止,則內存中的數據不能被寫入數據文件,造成數據丟失。當電力恢復數據庫再次打開時可以恢復丟失的數據。將最新的重做日誌文件中的信息應用於數據文件,Oracle可以將數據庫恢復到斷電時的狀態。

在恢復操作中恢復重做日誌信息的過程叫做前滾(rolling forward )。

4、歸檔日誌(Archive log)
當數據庫運行在ARCHIVELOG模式下,Oracle將自動地歸檔重做日誌文件;是非活動(Inactive)重做日誌的備份。

5、參數文件(Parameter file)
 

參數文件包含了數據庫與實例的配置參數列表。用於定義啓動實例所需要的初始化參數,包括文本參數文件(pfile)和服務器參數文件(spfile)
 
6、口令文件(Password file)
用於驗證特權用戶(具有SYSDBA、SYSOPER權限的特殊數據庫用戶)
 

二、邏輯數據庫結構(Logical database structure)

數據庫邏輯結構包含表空間、段、段(extent)、數據塊。

1、表空間(Tablespace)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章