首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 儲存架構完整對照:物理檔案 (資料/控制/Redo) 與邏輯結構 (表空間/段/區/塊/模式)

     編輯:Oracle 資料庫基礎

Oracle 儲存架構分為物理層 (作業系統檔案) 與邏輯層 (資料字典管理) 兩個維度。本文系統對照三大物理檔案類型、五層邏輯儲存結構、表空間管理模式、區塊大小設定、模式與使用者關係,建立完整儲存心智模型。

物理檔案三大類

檔案類型慣例副檔名核心功能關鍵特性
資料檔.dbf / .ora儲存所有使用者資料 (表、索引、LOB 等)一檔屬一表空間,離線/線上可調整大小、可啟用 AUTOEXTEND
控制檔.ctl記錄資料庫物理結構元資料 (檔案路徑、SCN、Checkpoint、RMAN 備份資訊)多工建議 ≥3 份放不同磁碟,CONTROL_FILES 參數指定,損毀需重建
線上 Redo Log.log循環記錄所有資料庫變更 (DML/DDL),支援復原與 Data GuardGroup (多工成員) 循環覆寫,狀態: CURRENT/ACTIVE/INACTIVE/UNUSED

邏輯儲存五層結構

表空間 → 段 → 區 → 區塊
Tablespace → Segment → Extent → Data Block

1. 表空間

  • 最大邏輯單位,收容段。資料庫至少一表空間 (SYSTEM)。
  • 由一或多資料檔組成,一檔專屬一表空間。
  • 管理模式:
    • 字典管理 (舊):空間資訊存字典表,易產生鎖爭用。
    • 本地管理 (預設):位圖在檔案標頭管理,高併發、無字典鎖。
  • 區塊大小:預設 DB_BLOCK_SIZE (8KB 常見),可建立非標準區塊大小表空間 (2K/4K/16K/32K) 配合 DB_nK_CACHE_SIZE。
  • 重要系統表空間:SYSTEM (字典/核心物件)、SYSAUX (輔助元資料)、UNDO (回滾)、TEMP (排序/雜湊/臨時表)。

2. 段

  • 表空間內特定類型邏輯儲存結構:

3. 區

  • 空間配置最小單位,由連續區塊組成。
  • 配置策略:UNIFORM SIZE (固定) 或 AUTOALLOCATE (系統自動 64KB→1MB→8MB→64MB)。
  • 段擴展:滿區時申請下一區,可跨資料檔 (同表空間)。

4. 區塊

  • IO 存取最小單位,大小由表空間建立時決定 (2K~64K)。
  • 結構:Block Header (FS1/FS2/FS3 空閒清單、交易槽位)、Row Directory、Row Data (Heap/Cluster)。
  • PCTFREE/PCTUSED (手動段空間管理) 或 ASSM (自動段空間管理) 控制空閒空間重用。

5. 模式

  • 使用者擁有的資料庫物件總稱:表、視圖、索引、同義詞、序列、程序、函式、套件、觸發器、型別、資料庫連結、目錄、Java Class/Source/Resource 等。
  • 使用者 = 模式擁有者 (1:1 對應),CREATE USER 即隱含建立模式。
  • 物件參考:schema.object (跨模式需權限/同義詞)。

建立表空間語法範例


-- 本地管理 + 自動區塊配置 + 自動段空間管理 (ASSM) - 推薦標準
CREATE TABLESPACE app_data
DATAFILE '/u01/oradata/app_data01.dbf' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 10G
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO
BLOCKSIZE 8K;

-- 非標準區塊大小表空間 (需先設定 DB_16K_CACHE_SIZE)
CREATE TABLESPACE idx_16k
DATAFILE '/u02/oradata/idx_16k01.dbf' SIZE 500M
BLOCKSIZE 16K
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

擴展資料檔語法


-- 手動調整大小
ALTER DATABASE DATAFILE '/u01/oradata/app_data01.dbf' RESIZE 2G;

-- 啟用/調整自動擴展
ALTER DATABASE DATAFILE '/u01/oradata/app_data01.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE 20G;

避坑提醒

  • 控制檔多工:單一控制檔風險極高,務必 CONTROL_FILES=('disk1/ctl1','disk2/ctl2','disk3/ctl3')。
  • Redo Log 多工:每 Group 至少 2 Member 放不同磁碟/控制器。
  • 表空間離線備份:非 OMF 檔案備份前建議 ALTER TABLESPACE ... BEGIN BACKUP (熱備份模式)。
  • 區塊大小選擇:OLTP 8K 平衡;DSS/資料倉庫 16K/32K 減少層級;小列表 2K/4K 減少浪費。

物理檔案對應邏輯結構,區塊是橋樑。掌握三大物理檔案職責、五層邏輯拆解、本地管理/ASSM 最佳實務,是容量規劃、效能調優、備份恢復的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
段類型儲存內容範例
資料段表資料、分區、叢集HEAP TABLE, PARTITION, CLUSTER
索引段B-Tree/Bitmap 索引PRIMARY KEY, UNIQUE, NORMAL INDEX
回滾段Undo 資料 (手動管理模式)PUBLIC ROLLBACK SEGMENT
臨時段排序、雜湊聯結、建立索引中間結果GLOBAL TEMPORARY TABLE, SORT