Linux/Unix 用 Shell 腳本備份輕鬆,Windows 結合「工作排程器」+ FORFILES 同樣能實現每日自動 EXP 邏輯備份與舊檔清理。
路徑:D:\backup\Bak.bat
REM 設定備份目錄與日期變數
SET BACKUP_DIR=D:\backup
SET ORACLE_SID=orcl
SET EXP_USER=user/passwd@orcl
REM 執行 EXP 備份(檔名含日期:scdd2016-11-30.dmp)
exp %EXP_USER% DIRECT=Y BUFFER=100000 FILE=%BACKUP_DIR%\scdd%date:~0,10% OWNER=('scdd') LOG=%BACKUP_DIR%\data.log
REM 清理 3 天前的 .dmp 檔
forfiles /p "%BACKUP_DIR%" /s /m *.dmp /d -3 /c "cmd /c del @path"
| 語法 | 說明 |
|---|---|
%date:~0,10% | 取日期前 10 字元(YYYY-MM-DD),視地區設定可能需調整 |
forfiles /p | 搜尋路徑 |
/m *.dmp | 檔案遮罩 |
/d -3 | 修改時間在 3 天前 |
/c "cmd /c del @path" | 對每個檔案執行刪除,@path 為完整路徑 |
@file - 檔名含副檔名 @fname - 檔名不含副檔名 @ext - 副檔名 @path - 完整路徑(刪除建議用此) @relpath - 相對路徑 @isdir - 是否目錄 @fsize - 檔案大小 @fdate - 最後修改日期 @ftime - 最後修改時間
cmd.exe、引數:/c D:\backup\Bak.batD:\backup\data.log 確認 EXP 成功imp 測試還原可用性RMAN 物理備份(需編寫 .rman 腳本配合 rman cmdfile=backup.rman)Send-MailMessagerclone、azcopy 等工具批次檔 + 排程器 + FORFILES,輕量級實現 Windows 環境 Oracle 每日備份閉環。