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

Oracle 邏輯備份 Shell 腳本實戰 (完全/累積/增量)

     編輯:Oracle 資料庫基礎

三層次邏輯備份策略與 Crontab 自動化

利用 exp 工具搭配 inctype 參數,可實現完全、累積、增量三級備份,再配合 crontab 達成無人值守自動化。

1. 三種備份腳本範例

完全備份 exp_comp.sh

#!/bin/sh
rq=`date +"%m%d"`
su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp"

累積備份 exp_cumu.sh

#!/bin/sh
rq=`date +"%m%d"`
su - oracle -c "exp system/manager full=y inctype=cumulative file=/oracle/export/db_cumu$rq.dmp"

增量備份 exp_incr.sh

#!/bin/sh
rq=`date +"%m%d"`
su - oracle -c "exp system/manager full=y inctype=incremental file=/oracle/export/db_incr$rq.dmp"

2. Crontab 排程範例 (root 身分)

# 每月 1 號 02:00 完全備份
0 2 1 * * /oracle/exp_comp.sh

# 週一至週六 02:30 增量備份
30 2 * * 1-6 /oracle/exp_incr.sh

# 週日 02:45 累積備份
45 2 * * 0 /oracle/exp_cumu.sh

3. 關鍵說明

  • inctype=complete:建立基準點,後續累積/增量以此為基準
  • inctype=cumulative:備份自上次完全備份以來所有變更
  • inctype=incremental:僅備份上次任意備份 (完全/累積/增量) 以來的變更
  • 日期變數 rq 格式可依需求調整 (如 %Y%m%d 含年份)
  • 生產環境建議改用 expdp (Data Pump) 取代舊版 exp,效能與平行度較佳

4. 恢復順序提醒

# 還原順序:完全備份 → 最新累積備份 → 其後所有增量備份
imp system/manager file=db_comp0101.dmp full=y
imp system/manager file=db_cumu0107.dmp full=y
imp system/manager file=db_incr0108.dmp full=y
...
imp system/manager file=db_incr0110.dmp full=y

建立標準化備份腳本與排程,是資料庫可用性的基石。

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