首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows 任務排程器實現 Oracle 定時備份:批次檔 + EXP + WinRAR 完整方案

     編輯:Oracle 資料庫相關知識

核心思路

利用 Windows 原生任務排程器觸發批次檔,批次檔調用 exp 導出、WinRAR 壓縮、移動至備份目錄,實現零成本自動化備份。

批次檔完整代碼(oracle_backup.bat)

@ECHO OFF
REM ===== 設定日期字串 YYYYMMDD =====
SET rq=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
REM 注:%DATE% 格式視系統地區設定而異,建議用 WMIC 取得標準格式:
REM FOR /F "tokens=2 delims==" %%I IN ('WMIC OS GET LocalDateTime /VALUE') SET rq=%%I
SET rq=%rq:~0,8%

REM ===== 導出參數 =====
SET ORACLE_SID=orcl
SET EXP_USER=system/your_password@orcl
SET BACKUP_DIR=D:\backup
SET LOG_DIR=D:\backup\log
SET RAR_PATH="C:\Program Files\WinRAR\rar.exe"

REM ===== 執行導出 =====
%ORACLE_HOME%\bin\exp %EXP_USER% FILE=%BACKUP_DIR%\bak_%rq%.dmp FULL=Y LOG=%LOG_DIR%\exp_%rq%.log BUFFER=65536
IF ERRORLEVEL 1 (
    ECHO [%DATE% %TIME%] EXPORT FAILED >> %LOG_DIR%\backup_status.log
    GOTO END
)

REM ===== 壓縮備份 =====
%RAR_PATH% a -df -ep1 %BACKUP_DIR%\bak_%rq%.rar %BACKUP_DIR%\bak_%rq%.dmp
IF ERRORLEVEL 1 (
    ECHO [%DATE% %TIME%] RAR FAILED >> %LOG_DIR%\backup_status.log
    GOTO END
)

REM ===== 移動至歸檔目錄(可加網路路徑)=====
MOVE /Y %BACKUP_DIR%\bak_%rq%.rar D:\databasebackup\

ECHO [%DATE% %TIME%] BACKUP SUCCESS >> %LOG_DIR%\backup_status.log

:END

關鍵參數解析

任務排程器設定步驟

  1. 開啟「任務排程器」→「建立基本任務」。
  2. 觸發器:每日/每週/自訂(如每天 02:00)。
  3. 動作:啟動程式 → C:\scripts\oracle_backup.bat。
  4. 「無論使用者是否登入都要執行」✓,「使用最高權限執行」✓。
  5. 條件/設定:視需求勾選「僅在網路可用時執行」、「如果任務失敗,每 10 分鐘重試 3 次」。

進階增強建議

  • 保留策略:批次檔開頭加入 FORFILES /P D:\databasebackup /M bak_*.rar /D -7 /C "CMD /C DEL @PATH" 自動刪除 7 天前備份。
  • 異地備份:MOVE 目標改為網路共享 \\BACKUP_SERVER\oracle\ 或呼叫 rclone/robocopy 上傳雲端。
  • 監控告警:解析 backup_status.log,結合 Zabbix/Prometheus/企業微信機器人推送失敗通知。
  • 切換 RMAN:生產環境強烈建議遷移至 RMAN 增量備份、塊追蹤、加密壓縮,EXP 僅適合小型/測試庫。

常見坑點

  • %DATE% 格式因地區設定不同(yyyy/MM/dd vs dd/MM/yyyy),務必用 WMIC 或 PowerShell 取得標準日期。
  • 排程器執行帳號需具備 Oracle Client 環境變數(ORACLE_HOME, PATH, NLS_LANG),建議在批次檔開頭顯式 SET。
  • WinRAR 命令列版 rar.exe 需註冊環境變數或寫絕對路徑,試驗版會彈窗導致排程卡死,請使用授權版或改用 7-Zip (7z.exe)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
參數說明
FULL=Y完整資料庫導出(需 DBA 權限)
BUFFER=65536導出緩衝區 64KB,提升大表導出效能
rar a -df添加檔案至壓縮包,壓縮後刪除源檔
rar -ep1排除基礎路徑,僅存相對路徑,解壓更乾淨