首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 備份三大法:邏輯導出、冷備份、熱備份全解析

     編輯:Oracle 資料庫相關知識

備份策略的核心分類

Oracle 提供三種標準備份模式,按層面劃分:

  • 邏輯備份:EXP/IMP(Data Pump 為現代替代),提取邏輯物件定義與資料。
  • 物理冷備份:資料庫正常關閉後,直接複製資料檔、控制檔、Redo Log、參數檔。
  • 物理熱備份:資料庫以 ARCHIVELOG 模式運行時,線上備份資料檔與歸檔日誌。

一、邏輯備份:EXP/IMP 詳解

三種導出模式

模式範圍典型指令
Table (T)指定表exp user/pwd@db tables=emp,dept file=exp.dmp
User (U)指定用戶所有物件exp user/pwd@db owner=scott file=scott.dmp
Full (F)整個資料庫exp system/pwd@db full=y file=full.dmp

增量導出策略(僅限 Full 模式,需 SYSTEM 身份)

  • 完全 (Complete):基準線備份,inctype=complete
  • 增量 (Incremental):自上次任意備份後的變更,inctype=incremental
  • 累計 (Cumulative):自上次完全備份後的所有變更,inctype=cumulative

一週備份排程範例

週一:完全導出 (A)
週二:增量 (B)   週三:增量 (C)   週四:增量 (D)
週五:累計 (E)   週六:增量 (F)   週日:增量 (G)

-- 週日災難恢復順序:
1. CREATE DATABASE 重建結構
2. 建立大型 UNDO 表空間
3. 完全導入 A
4. 累計導入 E
5. 最新增量導入 F (或 G)

二、冷備份:最快、最安全、但需停機

優勢

  1. 極速(單純檔案複製)
  2. 歸檔、還原極簡單(複製回原路徑)
  3. 可結合歸檔日誌實現「最新狀態」恢復
  4. 低維護、高安全

劣勢

  1. 僅能恢復至「特定時間點」
  2. 備份期間資料庫完全不可用
  3. 磁碟空間不足時需寫入磁帶,速度大幅下降
  4. 不支援表級、用戶級恢復

必備檔案清單

1. 所有資料檔 (.dbf)
2. 所有控制檔 (.ctl)
3. 所有線上 Redo Log 檔
4. 參數檔 (init.ora / spfile) -- 可選但建議備份

標準冷備份流程

-- 1. 正常關閉
$ sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE;

-- 2. OS 層複製檔案至備份目錄
$ cp /oradata/orcl/*.dbf /backup/cold_20240115/
$ cp /oradata/orcl/*.ctl /backup/cold_20240115/
$ cp /oradata/orcl/*.log /backup/cold_20240115/
$ cp $ORACLE_HOME/dbs/init*.ora /backup/cold_20240115/

-- 3. 重啟資料庫
SQL> STARTUP;

三、熱備份:零停機、配合 Data Guard 的基石

前置條件:資料庫必須運行於 ARCHIVELOG 模式,且需預留足夠歸檔空間。

熱備份三步曲

  1. ALTER TABLESPACE users BEGIN BACKUP; 進入備份模式(記錄 SCN,產生額外 Redo)
  2. OS 複製該表空間所有資料檔
  3. ALTER TABLESPACE users END BACKUP; 結束備份模式

備份完成後,必須同步備份控制檔(ALTER DATABASE BACKUP CONTROLFILE TO TRACE)與歸檔日誌,才能構成完整可恢復集合。

選型建議

場景推薦方案
開發/測試環境、小型資料庫、需跨版本遷移邏輯備份
生產環境、允許固定停機窗口、追求最簡單恢復冷備份
7×24 生產核心系統、需 RPO 接近 0、配合 DG/ASM熱備份 + RMAN

現代生產環境強烈建議以 RMAN** 為核心**,整合熱備份、增量備份、區塊變更追蹤、壓縮加密等企業級特性,構建分級備份策略(L0 完整 + L1 差異/累計),並定期演練恢復流程。

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