首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Windows 批次腳本實現 Oracle 定時自動備份(含壓縮與過期清理)

     編輯:Oracle 教學

Windows 批次腳本實現 Oracle 定時自動備份(含壓縮與過期清理)

針對中小型 Oracle 資料庫,無需複雜 RMAN 腳本,即可利用 Windows 原生排程器 + exp 傳統導出 + 批次檔實現:每日定時導出、自動壓縮(WinRAR/Zip)、過期備份自動刪除、圖形化配置介面。本文解析腳本核心邏輯、部署步驟與注意事項。

核心功能

  • 支援多實例並行備份(最多 9 組連線字串)。
  • 每日指定小時自動觸發(利用 at 排程)。
  • 導出完成自動壓縮(偵測 WinRAR 優先,否則用 zip)。
  • 保留天數可配置,僅在當日備份成功時才清理舊檔(防誤刪)。
  • 互動式選單管理:增/刪實例、設備份目錄/時間/保留天、立即備份。

部署步驟

  1. 將腳本存為 OracleAutoBackup.bat 放入任意目錄。
  2. 雙擊執行,腳本會自動複製自身至 %windir%\OracleAutoBackup\ 並註冊每日排程任務。
  3. 依選單提示輸入:備份目錄、每日備份時刻(0-23)、保留天數、實例連線字串(格式 user/pass@tns_alias)。
  4. 驗證:選單選 6「立即備份」觀察輸出;檢查備份目錄生成 .rar/.zip 與 delete.log。

關鍵邏輯解析

1. 配置持久化

設定寫入 %windir%\OracleAutoBackup\config.ini(每行一項:備份時刻、保留天、目錄、實例連線字串…),啟動時讀取還原變數。

2. 備份主流程

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

3. 過期清理策略

  • 計算截止日期:今天 - 保留天數(呼叫 VBScript 日期運算)。
  • 僅當「今日備份成功」(偵測到當日時間戳的備份檔)時,才掃描該實例目錄下所有 .dmp/.log/.zip/.rar,檔名日期 ≤ 截止日期則刪除並記錄 delete.log。
  • 若今日備份失敗,跳過清理,保留歷史檔案以利人工恢復。

4. 排程註冊

at HH:00 /every:1,2,...,31 %windir%\OracleAutoBackup\OracleAutoBackup.bat -backup
重命名最新 at*.job 為 "Oracle自動備份.job" 方便識別

前置需求

  • 客戶端安裝 Oracle Client、配置 tnsnames.ora、驗證 tnsping 通。
  • 系統 PATH 包含 exp.exe(通常在 %ORACLE_HOME%\bin)。
  • 安裝 WinRAR(可選)或確保 zip.exe 可用。
  • Task Scheduler 服務啟動(sc config schedule start= auto)。

常見問題與對策

現象原因對策
exp 命令不可用Oracle Client 未安裝或 PATH 缺失安裝 Client、將 bin 目錄加入系統 PATH
連線失敗 ORA-12154TNS 別名錯誤或 tnsnames.ora 未生效tnsping 驗證、檢查多 ORACLE_HOME 衝突
壓縮失敗WinRAR/zip 不在 PATH 或權限不足指定完整路徑、以管理員身分執行排程
排程不執行Task Scheduler 服務未啟或密碼過期services.msc 啟用服務、更新執行帳號密碼

適用場景與局限

  • ✅ 適用:單機/小型 RAC、資料量 < 200GB、恢復時間目標 (RTO) 可接受導入耗時、無專職 DBA 維護 RMAN。
  • ❌ 不適用:大型任務關鍵系統、需增量備份/時間點恢復、資料量 TB 級、需封存日誌備份。

進階建議

  • 改用 expdp + Data Pump 平行度加速導出。
  • 備份檔異地複製(Robocopy / Azure Blob / S3)實現離站容災。
  • 整合監控:備份成功/失敗發送郵件或寫入 Windows 事件日誌。
  • 長期規劃遷移至 RMAN + Recovery Appliance 或雲端備份服務。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved