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

Oracle 大型資料庫備份方案:從 EXP 壓縮管道到 RMAN 增量備份策略

     編輯:Oracle 資料庫基礎

問題現狀

20GB Oracle 資料庫(原 30GB 已清理),傳統備份極慢,需每週甚至每日備份。備份檔大小約等於資料大小(未壓縮時),壓縮後約 4GB。

方案一:EXP 導出 + 壓縮管道(適用中型庫)

利用 Unix 命名管道實現導出與壓縮並行,避免落地未壓縮檔案:

建立管道(一次即可)

$ mknod ./exp_pipe p
$ ls -l exp_pipe
prw-rw-r-- 1 report group 0 Mar 17 05:20 exp_pipe

備份 Shell 腳本(兩行必須在同一腳本)

compress < ./exp_pipe > ./tmp_now.dmp.Z &
exp user/passwd@連接串 file=./exp_pipe direct=y compress=no log=./exp.log
  • direct=y:直接路徑導出,繞過 SQL 層,速度大幅提升
  • compress=no:關閉 EXP 內建壓縮,改用外部 compress 並行處理
  • 背景程式 compress 讀管道並寫入 .Z 檔案
  • 20GB 導出檔壓縮後約 4GB

方案二:RMAN 增量備份策略(企業級首選)

不建議大型庫用 EXP,因速度慢、無增量、恢復慢。RMAN 官方備份恢復工具支援:

  • 增量備份(Level 0 基礎 + Level 1 增量)
  • 區塊級壓縮(跳過空塊、僅備份修改塊)
  • 並行處理(多通道同時讀寫)
  • 腳本化、目錄管理、驗證、磁帶整合

範例備份策略(每週循環)

日期備份類型Level說明
週日完整備份Level 0基礎全量備份
週一、二增量備份Level 1僅備份變更塊
週三完整備份Level 0新基礎點
週四、五、六增量備份Level 1累積變更

此策略平衡備份速度與恢復時間(RTO)。具體頻率依業務 RPO/RTO 定義調整。

RMAN 完整配置與操作流程

1. 啟用歸檔模式(前提)

SQL> ARCHIVE LOG LIST;
Database log mode: No Archive Mode

-- 修改為歸檔模式
$ mkdir /oracle/bakram/log_archive
$ vi /oracle/OracleHome/dbs/firstSpfile.ora
SPFILE="/oracle/OracleHome/dbs/spfileorcyehoo.ora"
log_archive_start=true
log_archive_format=ARC%T%S.arc
log_archive_dest=/oracle/bakram/log_archive

$ ./dbstartmount.sh  # 啟動至 MOUNT 狀態
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;

2. 建立 RMAN 復原目錄

SQL> CREATE TABLESPACE back DATAFILE 'back_CSS.dbf' SIZE 50M;
SQL> CREATE USER rman IDENTIFIED BY rman DEFAULT TABLESPACE back TEMPORARY TABLESPACE temp;
SQL> GRANT CONNECT, RESOURCE, RECOVERY_CATALOG_OWNER TO rman;

$ rman
RMAN> CONNECT CATALOG rman/rman;
RMAN> CREATE CATALOG TABLESPACE back;

3. 註冊目標資料庫

$ rman target sys/password catalog rman/rman@yehoo
RMAN> REGISTER DATABASE;

4. 執行備份命令

-- 備份表空間
BACKUP TAG 'tsuser' FORMAT '/oracle/css_%Y%m%d_%u_%s_%p' TABLESPACE CSS;

-- 完整資料庫備份(Level 0)
BACKUP INCREMENTAL LEVEL 0 DATABASE;

-- 增量備份(Level 1)
BACKUP INCREMENTAL LEVEL 1 DATABASE;

5. 維護與監控

RMAN> LIST BACKUP;           -- 查看備份集
RMAN> REPORT OBSOLETE;     -- 列出過期備份
RMAN> CROSSCHECK BACKUP;   -- 驗證備份介質可用性
RMAN> VALIDATE BACKUPSET;  -- 驗證備份可恢復性

RMAN 核心優勢總結

  • 區塊壓縮:僅備份已修改資料塊,忽略空塊
  • 增量備份:大幅縮減每日備份量與時間
  • 腳本化:標準化操作,減少人為錯誤
  • 目錄記錄:完整備份元資料,支援查詢報表
  • 第三方整合:API 對接磁帶庫、備份軟體
  • 並行處理:多通道分散 I/O 負載
  • 測試驗證:VALIDATE / CROSSCHECK 確保可恢復
  • 複製資料庫:從備份建立測試/開發環境

選型建議

  • < 50GB、備份窗口充裕:EXP + 管道壓縮方案簡單可行
  • > 50GB、需每日備份、RTO 敏感:必須上 RMAN 增量策略
  • 7×24 無停機窗口:RMAN 熱備份 + 歸檔日誌備份是唯一選擇

隨著資料量增長,儘早遷移至 RMAN 架構才是長久之計。

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