針對中小型 Oracle 資料庫,無需複雜 RMAN 腳本,即可利用 Windows 原生排程器 + exp 傳統導出 + 批次檔實現:每日定時導出、自動壓縮(WinRAR/Zip)、過期備份自動刪除、圖形化配置介面。本文解析腳本核心邏輯、部署步驟與注意事項。
at 排程)。zip)。OracleAutoBackup.bat 放入任意目錄。%windir%\OracleAutoBackup\ 並註冊每日排程任務。user/pass@tns_alias)。.rar/.zip 與 delete.log。設定寫入 %windir%\OracleAutoBackup\config.ini(每行一項:備份時刻、保留天、目錄、實例連線字串…),啟動時讀取還原變數。
FOR 各實例 DO
構建檔名:{tns}_{user}_YYYYMMDD-HHMM.dmp/.log
exp user/pass@tns FILE="..." LOG="..."
IF 導出檔存在 THEN
壓縮為 .rar 或 .zip
刪除原始 .dmp/.log
ELSE
刪除可能殘留的 .log
END IF
END FOR
今天 - 保留天數(呼叫 VBScript 日期運算)。.dmp/.log/.zip/.rar,檔名日期 ≤ 截止日期則刪除並記錄 delete.log。at HH:00 /every:1,2,...,31 %windir%\OracleAutoBackup\OracleAutoBackup.bat -backup
重命名最新 at*.job 為 "Oracle自動備份.job" 方便識別
tnsnames.ora、驗證 tnsping 通。exp.exe(通常在 %ORACLE_HOME%\bin)。zip.exe 可用。sc config schedule start= auto)。| 現象 | 原因 | 對策 |
|---|---|---|
| exp 命令不可用 | Oracle Client 未安裝或 PATH 缺失 | 安裝 Client、將 bin 目錄加入系統 PATH |
| 連線失敗 ORA-12154 | TNS 別名錯誤或 tnsnames.ora 未生效 | tnsping 驗證、檢查多 ORACLE_HOME 衝突 |
| 壓縮失敗 | WinRAR/zip 不在 PATH 或權限不足 | 指定完整路徑、以管理員身分執行排程 |
| 排程不執行 | Task Scheduler 服務未啟或密碼過期 | services.msc 啟用服務、更新執行帳號密碼 |
expdp + Data Pump 平行度加速導出。