傳統 exp 工具雖已被 Data Pump (expdp) 取代,但在舊版本維護或簡單邏輯備份場景仍具參考價值。本文提供三層級備份腳本範本與排程配置,採用 system/manager 預設帳密(生產環境請務必替換為專用備份帳號並啟用 Wallet 儲存密碼)。
exp_comp.sh#!/bin/bash
# 完全備份:每月 1 號凌晨 2 點執行
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/bash
# 累積備份:週六凌晨 2:45 執行(含自上次完全備份以來所有變更)
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/bash
# 增量備份:週一至週五凌晨 2:30 執行(僅含自上次備份以來變更)
rq=$(date +"%m%d")
su - oracle -c "exp system/manager full=y inctype=incremental file=/Oracle/export/db_incr${rq}.dmp"
以 root 身分編輯 /var/spool/cron/crontabs/root (或執行 crontab -e):
# 完全備份:每月 1 號 02:00
0 2 1 * * /Oracle/exp_comp.sh
# 增量備份:週一至週五 02:30
30 2 * * 1-5 /Oracle/exp_incr.sh
# 累積備份:週六 02:45
45 2 * * 6 /Oracle/exp_cumu.sh
EXP_FULL_DATABASE,使用 orapwd + Wallet 或 / 身分驗證 (OS 認證)。/Oracle/export 目錄存在且 oracle 使用者可寫,磁碟空間足夠。expdp + DBMS_DATAPUMP API,支援並行、壓縮、加密、網路模式等企業級特性。「沒測試過的備份不是備份」。建立季度恢復演練機制,驗證:
此腳本框架可直接套用至 9i/10g/11g 環境,配合現代化監控與加密儲存,構建合規的邏輯備份體系。