採用 Oracle Export (exp) 邏輯備份三層次:
INCTYPE=COMPLETE,基礎全量導出INCTYPE=CUMULATIVE,自上次完全備份以來的所有變更INCTYPE=INCREMENTAL,自上次任意備份以來的變更配合 FULL=Y 導出整個資料庫。
exp_comp.sh(每月 1 號)#!/bin/ksh
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/ksh
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/ksh
rq=`date +"%m%d"`
su - oracle -c "exp system/manager FULL=Y INCTYPE=INCREMENTAL FILE=/oracle/export/db_incr$rq.dmp"
編輯 root 的 crontab(/var/spool/cron/crontabs/root):
# 分 時 日 月 週 命令
0 2 1 * * /oracle/exp_comp.sh # 每月1號 02:00 完全備份
30 2 * * 0-5 /oracle/exp_incr.sh # 週一至五 02:30 增量備份
45 2 * * 6 /oracle/exp_cumu.sh # 週六 02:45 累加備份
| 元素 | 說明 | 注意事項 |
|---|---|---|
su - oracle -c | 切換至 oracle 用戶環境執行 | 需配置 oracle 用戶無密碼 sudo 或預設環境 |
rq=\`date +"%m%d"\` | 日期標記(月日) | 建議改用 %Y%m%d%H%M 含時分,避免同名覆蓋 |
FILE= | 導出檔路徑 | 確保 /oracle/export 空間足夠、權限正確 |
INCTYPE | 備份類型 | 三類配合形成完整恢復鏈 |
| Crontab 時間 | 錯開執行時間 | 避免並發導出爭用資源 |
imp 導入,參數對應 INCTYPE 類型| compress > file.dmp.Z 或 expdp COMPRESSION=ALL邏輯備份雖非大型庫首選,但配合三級策略與自動化排程,仍為中小型環境提供可靠的資料保護基線。