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

Oracle 資料安全全景 (一):基礎架構、日誌機制與儲存結構

     編輯:Oracle 資料庫基礎

前言:安全從「知己」開始

Oracle 9i 曾宣稱「Unbreakable」,但發布一月即被曝出緩衝區溢出漏洞。資料安全非廠商口號所能保證,而是 DBA 深度理解架構、配置最小權限、建立多層防護、持續修補漏洞的系統工程。

Oracle RDBMS 環境組件

  • 資料庫進程與記憶體結構(執行個體)。
  • SYSTEM 表空間(含資料字典),由一或多個資料檔組成。
  • DBA 定義的其他表空間(使用者資料、索引、暫存、UNDO 等)。
  • 兩個以上的線上重做日誌組(多工)。
  • 歸檔重做日誌(可選,ARHIVELOG 模式)。
  • 控制檔、參數檔 (SPFILE/PFILE)、密碼檔、網路設定檔等。

所有資料庫在中央系統類目(SYSTEM 表空間)與資料字典上運行。

日誌機制核心

線上重做日誌

  • 每個執行個體對應一組線上日誌(多組成員多工)。
  • LGWR 同步寫入,記錄所有變更的重做項,支援實例/介質恢復。
  • 循環使用,填滿觸發日誌切換(Checkpoint)。

歸檔重做日誌

  • 線上日誌填滿後由 ARCn 複製至歸檔目的地,形成離線備份鏈。
  • 唯一標識(日誌序列號 + 線程號),不可修改、不可刪除(除非已備份)。
  • 支援:
    ① 介質故障下所有已提交交易可恢復。
    ② 資料庫開啟狀態下進行線上備份(熱備份)。

兩種運行模式

模式特徵恢復能力
NOARCHIVELOG不產生歸檔,線上日誌循環覆寫僅支援實例恢復(崩潰恢復),不支援介質恢復、熱備份
ARCHIVELOG自動歸檔,需管理歸檔空間支援完整介質恢復、時間點恢復、熱備份、Data Guard

生產環境強制啟用 ARCHIVELOG。

物理與邏輯儲存結構

層級關係

資料庫
  └─ 表空間
       └─ 資料檔 (一或多個)
            └─ 區塊 (Block, 512~8192 bytes, 建庫指定)
                 └─ 區
                      └─ 段
                           └─ 物件

關鍵概念

  • 區塊:最小 I/O 單位,典型 8KB。建庫時 DB_BLOCK_SIZE 指定,創建後不可變更。
  • 區:連續區塊集合,空間分配單位。最小 5 區塊。可為均勻大小或自動分配。
  • 段:物件(表、索引、LOB、暫存、UNDO、叢集)佔用的空間集合。
  • 表空間:邏輯儲存容器,映射一組資料檔。本地管理 (LMT) + 自動區塊管理 (ASSM) 為現代標準。

安全基線配置清單(基於架構理解)

  1. 控制檔多工:至少 3 份分散不同磁碟/控制器,CONTROL_FILES 參數列出所有路徑。
  2. 線上日誌多工:每組至少 2 成員,分散不同磁碟,成員大小一致。
  3. 啟用 ARCHIVELOG + 多歸檔目的地:LOG_ARCHIVE_DEST_n、LOG_ARCHIVE_MIN_SUCCEED_DEST。
  4. 資料檔/臨時檔/UNDO 檔分盤:分離 I/O 熱點,提升效能與可用性。
  5. 參數檔使用 SPFILE:支援動態修改、備份、多實例共享(RAC)。
  6. 密碼檔 EXCLUSIVE 模式:支援遠端 SYSDBA 管理。
  7. 區塊大小選型:OLTP 8KB,DSS/數倉 16KB/32KB,建庫前規劃。

理解架構是安全的前提。下一篇將深入備份恢復策略,構建「可恢復」的核心防線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved