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

Oracle 資料庫備份策略全解析:匯出/匯入、冷備份、熱備份

     編輯:Oracle 資料庫相關知識

前言

資料庫備份是確保資料可恢復的核心。Oracle 提供三種標準備份方式:邏輯備份(Export/Import)、物理冷備份、物理熱備份。本文詳細比較三者特性、操作步驟與適用場景。

一、備份方式概覽

方式類型恢復特性
Export/Import邏輯備份可將任意物件恢復至匯出時狀態
冷備份物理備份可恢復至資料庫正常關閉時點
熱備份物理備份可恢復至任意時間點(需 Archive Log)

二、Export/Import 邏輯備份

1. Export 模式與類型

  • 模式:使用者模式、資料表模式、完整資料庫模式。
  • 類型:完全型、累加型、增量型。

2. 一致性考量

Export 逐表讀取,若表間有外鍵關聯,可能導致不一致。解決方式:

  • 安排在無操作時段執行。
  • 使用 CONSISTENT=Y 參數(Oracle 8i+)確保讀取一致性。

3. Import 還原要點

  • 完整匯出模式會自動建立表空間、使用者,但建議預先建立以控制物理佈局。
  • 累加/增量模式必須預先建立表空間、使用者、資料檔。

三、冷備份(離線備份)

前提:資料庫正常關閉(SHUTDOWN NORMAL/IMMEDIATE)。

備份檔案清單:所有資料檔、控制檔、線上重做日誌檔、參數檔(可選)。

步驟:

  1. SVRMGR > CONNECT INTERNAL; SHUTDOWN NORMAL;
  2. OS 層面複製檔案至備份目錄(cp 或 tar)。
  3. SVRMGR > STARTUP;

四、熱備份(線上備份,需 ARCHIVELOG 模式)

1. 啟用 ARCHIVELOG 模式

SVRMGR > STARTUP MOUNT;
SVRMGR > ALTER DATABASE ARCHIVELOG;
SVRMGR > SHUTDOWN;
編輯 init.ora:
log_archive_start = true
log_archive_dest = $ORACLE_HOME/dbs/arch
log_archive_format = log%s.arc
SVRMGR > STARTUP;

2. 完整離線備份(基礎備份)

關閉資料庫,複製所有資料檔、控制檔、日誌檔至備份目錄,再啟動資料庫。

3. 每日部分線上備份(表空間級)

  1. ALTER TABLESPACE BEGIN BACKUP; 將各表空間置於備份模式。
  2. OS 複製該表空間資料檔。
  3. ALTER TABLESPACE END BACKUP; 恢復正常模式。
  4. 備份產生的歸檔日誌:
    暫停歸檔程序 → 複製歸檔檔 → 重啟歸檔程序 → 刪除已備份歸檔釋放空間。
  5. ALTER DATABASE BACKUP CONTROLFILE TO '...'; 備份控制檔。

五、備份檔案恢復示例

使用 tar 從磁帶恢復檔案,或利用 RECOVER DATABASE 自動應用歸檔日誌恢復至故障點。

六、策略建議

  • 小型資料庫/非 7x24 系統:冷備份 + 定期 Export 足矣。
  • 大型關鍵系統:結合邏輯與物理備份,Export 驗證邏輯正確性,物理備份保證時間點恢復。
  • 備份媒體管理:統一編號、異地儲存、定期驗證可讀性。

附錄:常用參數速查

文中附有 Export/Import 參數完整表(USERID, BUFFER, FILE, COMPRESS, GRANTS, INDEXES, ROWS, CONSTRAINTS, FULL, OWNER, TABLES, CONSISTENT 等)與熱備份腳本範例。

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