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

Windows 排程任務實現 Oracle 資料庫自動備份(含保留策略)

     編輯:Oracle 資料庫基礎

架構概覽

利用 Windows 工作排程器、批次檔與 VBScript 封裝 exp 匯出工具,實現每日自動備份並保留最近兩代備份檔。方案輕量、無需額外軟體,適合中小型資料庫。

目錄結構

Oracle_backup/
├── backup/          # 當前備份
├── old_backup/      # 上一代備份
└── script/
    ├── exp.par      # 參數檔
    ├── oracle_backup.bat  # 主流程
    └── oracle_backup.vbs  # 呼叫 exp 的 VBScript

1. 參數檔 script/exp.par

userid=system/manager@ORCL
owner=SCOTT
indexes=y
grants=y
rows=y
constraints=y
compress=n

說明:userid 請依實際連線字串修改;owner 指定匯出結構;若需全庫備份改用 full=y。

2. 批次檔 script/oracle_backup.bat

@echo off
rem === 保留策略:輪換兩代 ===
rem 1. 刪除舊備份
del /q ..\old_backup\*.*

rem 2. 將目前備份移至舊備份
copy ..\backup\*.* ..\old_backup\

rem 3. 清空目前備份目錄
del /q ..\backup\*.*

rem 4. 執行 VBScript 啟動 exp
cscript //nologo oracle_backup.vbs

rem 如需保留歷史所有備份,註解掉第 1、3 行

3. VBScript script/oracle_backup.vbs

Option Explicit
On Error Resume Next

Dim fname, cmd, WshShell
Set WshShell = CreateObject("WScript.Shell")

fname = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
cmd = "exp parfile=exp.par " & _
      "log=../backup/" & fname & "_exp.log " & _
      "file=../backup/" & fname & "_exp.dmp"

WshShell.Run cmd, 1, True  ' 1=顯示視窗, True=等待完成
Set WshShell = Nothing

建立排程任務

  1. 開啟「工作排程器」→「建立基本工作」
  2. 觸發條件:每日、指定時間(建議離峰時段)
  3. 動作:啟動程式 → C:\Oracle_backup\script\oracle_backup.bat
  4. 關鍵:「一般」頁籤勾選「不管使用者是否登入都要執行」並輸入具備批次登入權限的帳號密碼(否則可能不執行)。

進階擴充建議

  • 壓縮備份:批次檔中加入 7z a -tzip ..\backup\%fname%_exp.zip ..\backup\%fname%_exp.dmp 並刪除 .dmp。
  • 遠端備份:搭配 robocopy 將備份目錄鏡像至 NAS/異地伺服器。
  • 監控告警:VBScript 結尾檢查 Err.Number,失敗時發送郵件(可呼叫 PowerShell Send-MailMessage)。
  • 遷移至 Data Pump:Oracle 10g+ 建議改用 expdp,支援並行、壓縮、網路模式,效能大幅優於 exp。

常見問題排查

現象可能原因對策
排程不執行帳號無「以批次工作登入」權限本機安全性原則 → 使用者權限指派 → 加入帳號
exp 報 ORA-12541Listener 未啟動檢查服務 OracleOraHome*TNSListener
匯出檔為 0 KBconnect string 錯誤或權限不足以相同帳號手動測試 exp 指令

結語

此方案以原生 Windows 元件實現「零成本、可維護」的自動備份。隨著資料量增長,建議逐步遷移至 RMAN 增量備份 + Data Guard 異地容災,構建企業級資料保護體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved