Oracle數據庫存儲和結構簡介

我們知道數據庫是存儲數據的容器,它的主要功能是保存,這裏,我們隊數據庫存放數據的基礎知識進行介紹.

首先,Oracle數據的存儲結構可以分爲邏輯存儲結構和物理存儲結構,對於這兩種存儲結構,Oracle是分別進行管理

  • 邏輯存儲結構:Oracle是內部的組織和管理數據的方式
  • 物理存儲結構:Oracle外部(操作系統)組織和管理數據的方式

1.邏輯存儲結構
這裏寫圖片描述
Oracle在邏輯上將保存的數據劃分爲一個個小單元來進行存儲和維護,更高一級的邏輯存儲結構都是由這些基本的小單元組成的.邏輯結構類型按照尺寸從小到大的可分爲:塊(block)–>區(extent)->段(segment)–>表空間(tablespace)

塊:Oracle用來管理存儲的最下單元,也是最小的邏輯結構的存儲結構.Oracle數據庫在進行輸入輸出時,都是以塊爲單位進行讀寫操作的.我們建議數據塊的尺寸爲操作系統尺寸的整數倍(1,2,4).另外,塊的大小是在創建數據庫的時候決定的,之後不能修改.當然我們對塊的結構進行一些介紹.

塊的頭部信息區
塊頭:包含塊一般地 屬性,如塊的物理地址,塊的所屬的段的類型
表的目錄:如果塊中存儲的數據是表的數據,則在表目錄中保存塊中所包含的表的相關信息
行目錄:行記錄的相關信息 如ROWID
塊的存儲區:主要包含空閒和已經使用的空間.Oracle主要通過下面的兩個參數對這部分空間進行管理

  • PCTFREE參數:指定塊中必須保留的最小空閒空間比例.當塊中的空閒存儲空間減少到PCTFREE所設置的比例後,Oracle將塊標記爲不可用狀態,新的數據行將不能被加入到這個塊
  • PCTUSED參數:制定一個百分比,當塊中已經使用的存儲空間降低到這個百分比以下時,這個塊才被重新標記爲可用狀態.
    以上兩個參數既可以在表空間級別進行設置,也可以在段級別進行設置.段級別的設置優先級更高

區:比塊高一級的邏輯存儲結構,由連續的塊組成,它是oracle在進行存儲空間的分配和回收的最小單位.在創建具有獨立段結構的數據庫對象時,例如表,索引等,Oracle會爲數據庫對象創建一個數據段,併爲數據段分配一個’初始區’.後續區的分配方式,則根據表的空間管理辦法不同,而採用不同的分配方式,例如 autoextent, uniform size 或者在創建表或表空間時設置default storage字句.另外,用戶還能夠通過執行下面的命令來回收表,索引等對象中未使用的區:
SQL: alter table table_name deallocate unused;

段:由多個區組成,這些區可以是連續的,也可以是不連續的.當用戶在數據庫中創建各種具有實際存儲結構的對象時(保存有數據的對象),比如表,索引等,Oracle將位這些對象創建段.一般一個對象只擁有一個段.在創建段時,可以爲它指定PCTFREE,PCTUSED等參數來控制其中的塊的存儲空間管理方式,也可以爲它制動INITIAL,NEXT,PCTINCREASE燈存儲參數,以指定其中區的分配方式.如果沒有爲段指定這些參數,段將自動繼承表空間的相應參數.不同類型的數據庫對象擁有不同類型的段:
數據段:保存表中的記錄
索引段:索引中索引條目
臨時段:在執行查詢等操作時.Oracle可能會需要使用到一些臨時存儲空間,用於臨時保存解析過程查詢語句及在排序過程中產生的臨時數據.
回滾段:保存回滾數據

表空間:最高級的邏輯存儲結構,數據庫是由多個表空間組成的,在創建數據庫時會自動創建一些默認的表空間.例如SYSTEM表空間,SYSAUX表空間等.通過使用表空間,Oracle將所有相關的邏輯結構和對象組合在一起.我們可以在表空間級別指定存儲參數,也可以在短級別指定.下面我們列出常見的表空間,和他們所存儲的信息
數據表空間:用於存儲用戶數據的普通表空間。
系統表空間:默認的表空間,用於保存數據字典(一組保存數據庫自身信息的內部系統表和視圖,及用於Oracle內部使用的其他一些對象),保存所有的PL/SQL程序的源代碼和解析代碼,包括存儲過程和函數、包、數據庫觸發器等,保存數據庫對象(表、視圖、序列)的定義。
回滾表空間:用於存放回滾段,每個實例最多隻能使用一個撤銷表空間
臨時表空間:存儲SQL執行過程中產生的臨時數據

最後,我們可以用下面的比喻來描述邏輯結構關係:
塊 :一張張白紙 —> 區:白紙組成的本子—> 段:多個本子放到一個文件袋中—> 表空間:文件櫃(存放多個文件袋)

2. Oracle物理存儲結構
Oracle數據庫邏輯上由一個或多個表空間組成,每個表空間在物理上由一個或多個數據文件組成.而每個數據文件是由數據塊構成的.所以邏輯上數據存放在表空間中,而物理上存儲表空間所對應數據文件中,用下面這種圖來描述數據文件和表空間的關係
這裏寫圖片描述

構成數據庫物理文件的主要有三種:

  • 數據文件:存放數據庫數據.
  • 控制文件:存放數據庫的基本信息.告訴數據庫到哪裏可以找到數據文件和重做日誌文件等.對數據庫的成功啓動和正常運行時很重要的
  • 重做日誌文件:存放對數據的改變.至少兩組.Oracle以循環方式來使用它們
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章