1. 程式人生 > >Oracle 表空間和資料檔案之間的關係

Oracle 表空間和資料檔案之間的關係

首先,你需要明白的一點是:資料庫的物理結構是由資料庫的作業系統檔案所決定,每一個Oracle資料庫是由三種類型的檔案組成:資料檔案、日誌檔案和控制檔案。資料庫的檔案為資料庫資訊提供真正的物理儲存。 
每一個Oracle資料庫有一個或多個物理的資料檔案(data file)。一個數據庫的資料檔案包含全部資料庫資料。邏輯資料庫結構(如表、索引等)的資料物理地儲存在資料庫的資料檔案中。資料檔案通常為*.dbf格式,例如:userCIMS.dbf。資料檔案有下列特徵:①、一個數據檔案僅與一個數據庫聯絡;②、一旦建立,資料檔案只增不減;③、一個表空間(資料庫儲存的邏輯單位)由一個或多個數據檔案組成。 
其次,我們再來敘述一下Oracle的邏輯結構:Oracle的邏輯結構包括表空間(tablespace),段(segment),資料塊(data block)以及模式物件(schema object)。 
Oracle資料庫在邏輯上是由多個表空間組成的,表空間在物理上包含一個或多個數據檔案。而資料檔案大小是塊大小的整數倍;表空間中儲存的物件叫段,比如資料段,索引段和回退段。段由區組成,區是磁碟分配的最小單位。段的增大是通過增加區的個數來實現的。每個區的大小是資料塊大小的整數倍,區的大小可以不相同;資料塊是資料庫中的最小的I/O單位,同時也是記憶體資料緩衝區的單位,及資料檔案儲存空間單位。塊的大小由引數DB_BLOCK_SIZE設定,其值應設定為作業系統塊大小的整數倍。 
⑴、表空間(tablespace) 
表空間是資料庫中最大的邏輯單位,每一個表空間由一個或多個數據檔案組成,一個數據檔案只能與一個表空間相聯絡。每一個數據庫都有一個SYSTEM表空間,該表空間是在資料庫建立或資料庫安裝時自動建立的,用於儲存系統的資料字典表,程式系統單元,過程函式,包和觸發器等,也可用於儲存使用者資料表,索引物件。表空間具有線上(online)和離線(offline)屬性,可以將除SYSTME以外的其他任何表空間置為離線。 
⑵、段(segment) 
資料庫的段可以分為四類:資料段、索引段、回退段和臨時段。 
⑶、區 
區是磁碟空間分配的最小單位。磁碟按區劃分,每次至少分配一個區。區儲存與段中,它由連續的資料塊組成。 
⑷、資料塊 
資料塊是資料庫中最小的資料組織單位與管理單位,是資料檔案磁碟儲存空間單位,也是資料庫I/O的最小單位,資料塊大小由DB_BLOCK_SIZE引數決定,不同的Oracle版本DB_BLOCK_SIZE的預設值是不同的。 
⑸、模式物件 
模式物件是一種應用,包括:表、聚簇、檢視、索引序列生成器、同義詞、雜湊、程式單元、資料庫鏈等。 
最後,在來說一下Oracle的使用者、表空間和資料檔案的關係: 
一個使用者可以使用一個或多個表空間,一個表空間也可以供多個使用者使用。使用者和表空間沒有隸屬關係,表空間是一個用來管理資料儲存的邏輯概念,表空間只是和資料檔案發生關係,資料檔案是物理的,一個表空間可以包含多個數據檔案,而一個數據檔案只能隸屬一個表空間。 
總結一下:解釋資料庫、表空間、資料檔案、表、資料的最好辦法就是想象一個裝滿東西的櫃子。資料庫其實就是櫃子,櫃中的抽屜是表空間,抽屜中的資料夾是資料檔案,資料夾中的紙是表,寫在紙上的資訊就是資料。