Oracle 11g 體系結構概述


3個重要概念:

實例(Instance):指一組Oracle后台進程以及在服務器中分配的共同內存區域

數據庫(Database):基於磁盤的數據文件、控制文件、日志文件、參數文件和歸檔日志文件等組成的物理文件集合

數據庫服務器(DatabaseServer):管理數據庫的各種軟件工具(sqlplus),實例以及數據庫3個部門

數據庫存儲數據的方式稱為存儲結構

邏輯存儲結構

  面向用戶的

不同粒度級別(由小到大):

數據塊(Data Block):Oracle邏輯存儲結構中最小的邏輯單位,也是執行數據庫輸入輸出操作的最小存儲單位。

   數據塊的大小寫入到初始化參數--DB_BLOCK_SIZE(8192,默認)。可以存放表數據,索引數據和簇數據

數據塊的組成部分:

  塊頭:存放數據塊的基本信息,如塊的物理地址,塊所屬的段的類型

  表目錄:存放表的相關信息。

  行目錄:如果塊中有行數據存在,則這些行的信息將被記錄在行目錄中。

  空余空間:是一個塊中未使用的區域,這片區域用於新行的插入和已經存在行的更新

  行數據:用於存放表數據和索引數據的地方,這部分空間已經被數據行所占用

通常把塊頭、表目錄、行目錄合稱為頭部信息區,該區不存放數據,它存放整個塊的引導信息,起到引導系統讀取數據的作用。所以,頭部信息區若遭到破壞,則Oracle系統將無法讀取這部分數據。另外,空余空間和行數據共同構成塊的存儲區,用於存放真正的數據記錄。

 

數據區(Extent):也稱作數據擴展區是由一組連續的Oracle數據塊所構成的Oracle存儲結構,一個或多個數據塊組成一個數據區,一個或多個數據區組成一個段。數據區是Oracle存儲分配的最小單位。使用數據區的目的是用來保存特定數據類型的數據

段(Segment):一個獨立的邏輯存儲結構用於存儲表、索引或簇等占用空間的數據對象。段是為特定的數據對象(表,索引,回滾)分配的一系列數據區。一般有以下四中類型的段:

  數據段:保存的是表中的數據記錄。當創建一個表時,系統自動創建一個以該表的名字命名的數據段。

  索引段:索引段包含了用於提高系統性能的索引。一旦建立索引,系統自動創建一個以該索引的名字命名的索引段。

  回滾段:也叫撤銷段,保存了回滾條目,也就是保存修改前的值。當一個事務開始處理時,系統為之分配回滾段。Oracle 11g有個默認的回滾段。

  臨時段:當執行創建索引、查詢等操作時,用於存放臨時數據。一般在CREATE INDEX;SELECT ORDER BY;SELECT DISTINCT;SELECT GROUP BY等SQL語句中,Oracle系統就會在臨時表空間為這些語句的操作分配一個臨時段。在需要經常執行上述語句時,可以調整SORT_AREA_SIZE的大小。

 

表空間(TableSpace):數據庫中最大邏輯划分區域,通常用來存放數據表、索引、回滾段等數據對象,任何數據對象在創建時必須被指定存儲在某個表空間中。表空間(屬邏輯存儲結構)和數據文件(屬物理存儲結構)相對應,一個表空間由一個或多個數據文件組成,而一個數據文件只屬於一個表空間。在創建數據庫時,Oracle系統會自動創建多個默認的表空間,以下是幾個常見的:

  SYSTEM表空間:用於存放Oracle系統內部表和數據字典的數據。比如,表名、列名、用戶名等。

    可以通過v$fixed_view_definition查看數據庫中內部系統表的信息

  SYSAUX表空間: 11g新增加的表空間。主要存儲除數據字典以外的其他數據對象。由系統內部自動維護。

  UNDO表空間:撤銷表空間。一般在創建Oracle實例后,Oracle系統自動創建一個名字為“UNDOTBS1”的撤銷表空間,該表空間對應的數據文件是“UNDOTBS01.DBF”

  USER表空間:用戶表空間。用戶可以自己創建表空間,此外不同應用系統的數據應存放在不同的表空間,而不同的表空間的數據文件應該存放在不同的磁盤上,從而減少I/O沖突,提高應用系統的操作性能。

 

 

物理存儲結構

  由多種物理文件組成。

  數據文件:保存用戶應用程序數據和Oracle系統內部數據的文件。在表空間中創建數據對象時,用戶是無法指定使用哪一個數據文件來進行存儲的,只能由Oracle系統負責為數據對象選擇具體的數據文件,並在其中分配物理存儲空間。 可以通過查詢dba_data_files(file_name,tablespace_name)或v$datafile(name)來了解Oracle系統的數據文件信息。主要有以下幾種:

    系統數據文件:用於存放“特殊”的用戶數據和Oracle系統本身的數據。

    撤銷數據文件:修改數據時,撤銷段會臨時保存修改前的數據。

    用戶數據文件:用於存放用戶應用系統的數據。

注意:臨時表空間所包括的數據文件在9i以后,就與一般數據文件分開,可以使用dba_temp_files或者v$tempfile

  控制文件:是一個二進制文件,記錄了數據庫的物理結構,包括數據庫名、數據文件與日志文件的名字和位置、數據庫建立日期等信息。控制文件所存放的路徑由服務器參數文件spfileorcl.ora的control_files參數值指定。 若控制文件不正常,實例是無法正常加載的。 Oracle正常啟動時,系統首先訪問的是初始化參數文件spfile,然后Oracle為系統全局區(SGA)分配內存。這時,Oracle實例處於安裝狀態,並且控制文件處於打開狀態;接下來Oracle會自動讀出“控制文件"的所有數據文件和日志文件的信息,並打開當前數據庫中所有的數據文件和所有的日志文件以供用戶訪問。

  注意:出於安全考慮,在安裝Oracle數據庫或創建數據庫時,Oracle系統會自動創建兩個或三個控制文件,每個控制文件記錄相同的信息。以備后患。可以通過v$contorlfile(name)來查詢控制文件的信息。當數據庫的物理組成更改時,Oracle自動更改該數據庫的控制文件。數據恢復時,也要使用控制文件。

  日志文件:記錄對數據所作的修改,對數據庫所做的修改幾乎都記錄在日志文件中。包括以下兩種:

    重做日志文件(Redo Log File):用來記錄數據庫所有發生過的更改信息以及Oracle內部行為而引起的數據庫變化信息。

          在數據庫恢復時,可以從該日志文件中讀取原始記錄。在數據庫運行期間,當用戶執行COMMIT命令時,數據庫首先將每筆操作的原始記錄寫入到日志文件中,寫入日志文件成功后,才把新的記錄傳遞給應用程序。所以,在日志文件上可以隨時讀取原始記錄以恢復某些數據。可以使用v$logfile(member)來查詢日志文件信息。

      歸檔日志文件(Archive Log File): 兩種模式:歸檔模式;非歸檔模式。 在日志已經寫滿時,會出現重新覆寫,這樣就會導致一部分較早的日志信息被覆蓋掉,但Oracle通過歸檔日志文件解決這個問題。新的日志(LGWR),要在ARCH(歸檔)進程完成后,才能開始覆寫日志文件,這樣會延遲系統的響應時間,同時會占用大量的磁盤空間,所以默認情況下,系統不采用歸檔模式。可以通過v$database(name,log_mode)查看數據庫系統是否采用歸檔模式。 若在歸檔模式下,則可通過服務器參數文件spfile的log_archive_dest(show parameter log_archivie_dest)參數來確定歸檔日志文件的所在路徑。

  服務器參數文件:(Server Parameter File SPFile)是二進制文件,用來記錄Oracle數據庫的基本參數信息。盡量避免直接修改SPFilesid.ora文件,而是通過OEM或ALTER SYSTEM來修改,這樣修改過的參數會自動寫到SPFile文件中

  1.查看服務器參數

v$parameter(name,value,ismodified)動態性能視圖來確定是否被修改過

show parameter +服務器參數名(可缺省)

  2.修改服務器參數

OEM圖形化修改(system登陸)

alter system set db_block_size=4096

    

  密碼文件、警告文件和跟蹤文件

  密碼文件:用於驗證sysdba權限的二進制文件,當遠程用戶以sysdba或sysoper連接到數據庫時,一般用密碼文件驗證。

創建密碼文件:ORAPWD file=<filename> password=<password> entries=<max_user>

max_user:表示密碼文件可以存放的最大用戶數,也就是說,可以以sysdba/sysoper權限登陸數據庫的最大用戶數。

創建了密碼文件后,需要設置初始化參數remote_login_passwordfile來控制密碼文件的使用狀態

值為:none--表示只要通過操作系統驗證,就不用通過Oracle密碼文件驗證;

  shared:表示多個數據庫實例都可以使用此密碼文件驗證;

  exclusive:表示只有一個數據庫實例可以使用此密碼文件驗證

例如:ORAPWD FILE ="E:\app\Admin\product\11.2.0\dbhome_1\database\PWDorcl.ora password=012345 entries=40

  警告文件:存儲在Oracle系統下的文本文件(alert_orcl.log),記錄運行信息和錯誤信息。通過background_dump_dest(v$parameter)參數查看警告文件路徑

  跟蹤文件:包括后台進程跟蹤文件(就是警告文件)和用戶進程跟蹤文件(user_dump_dest)。每個后台進程都有對應的后台進程跟蹤文件

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM