數據備份是資料庫運維的生命線。本文介紹如何結合 Windows 任務計劃、批處理腳本與 Oracle EXP 導出工具,實現自動化、按日期命名、循環覆蓋的備份策略,並提供壓縮備份、日誌記錄等進階方案。
backup.bat@echo off
REM 導出系統用戶數據,文件名含日期:Oracle2024-01-15.dmp
exp system/manager file=d:\backup\Oracle\Oracle%date:~0,10%.dmp owner=system log=d:\backup\Oracle\Oracle%date:~0,10%.log
關鍵點:%date:~0,10% 截取前 10 位字符(如 "2024-01-15"),具體格式需在命令行執行 echo %date% 確認。
d:\Oracle\backup.bat每天生成 OracleYYYY-MM-DD.dmp 與 .log 文件,歷史備份自動保留,便於時間點恢復。
exp system/manager file=d:\backup\Oracle\Oracle%date:~11,3%.dmp owner=system log=d:\backup\Oracle\Oracle%date:~11,3%.log
%date:~11,3% 取星期縮寫(如 "Mon"),實現 7 天循環覆蓋,僅保留最近一週備份。
@echo off
set filename=e:\data_bak\%date:~8,2%日
exp userid=user/pass@esdata file=%filename%.dmp owner=user indexes=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.dmp
del %filename%.log
%date:~8,2% 取日期中的日部分(01-31),實現月度循環。rar.exe 放入系統 system32 目錄或配置 PATH。set filename=... 改為 %date:~0,3% 取星期縮寫。%date% 格式不同,務必先用 echo %date% 驗證截取參數。%time% 並同理截取。通過簡單的批處理腳本配合任務計劃,即可構建可靠、低維護成本的 Oracle 備份體系。根據業務 RPO/RTO 要求,靈活選擇「保留歷史」或「循環覆蓋」策略,並善用壓縮節省磁盤空間。