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

Windows 排程任務實現 Oracle 每日自動備份:EXP + FORFILES 保留三天

     編輯:Oracle 資料庫相關知識

Linux/Unix 用 Shell 腳本備份輕鬆,Windows 結合「工作排程器」+ FORFILES 同樣能實現每日自動 EXP 邏輯備份與舊檔清理。

1. 建立備份批次檔

路徑:D:\backup\Bak.bat

REM 設定備份目錄與日期變數
SET BACKUP_DIR=D:\backup
SET ORACLE_SID=orcl
SET EXP_USER=user/passwd@orcl

REM 執行 EXP 備份(檔名含日期:scdd2016-11-30.dmp)
exp %EXP_USER% DIRECT=Y BUFFER=100000 FILE=%BACKUP_DIR%\scdd%date:~0,10% OWNER=('scdd') LOG=%BACKUP_DIR%\data.log

REM 清理 3 天前的 .dmp 檔
forfiles /p "%BACKUP_DIR%" /s /m *.dmp /d -3 /c "cmd /c del @path"

關鍵語法解析

語法說明
%date:~0,10%取日期前 10 字元(YYYY-MM-DD),視地區設定可能需調整
forfiles /p搜尋路徑
/m *.dmp檔案遮罩
/d -3修改時間在 3 天前
/c "cmd /c del @path"對每個檔案執行刪除,@path 為完整路徑

FORFILES 變數對照

@file    - 檔名含副檔名
@fname   - 檔名不含副檔名
@ext     - 副檔名
@path    - 完整路徑(刪除建議用此)
@relpath - 相對路徑
@isdir   - 是否目錄
@fsize   - 檔案大小
@fdate   - 最後修改日期
@ftime   - 最後修改時間

2. 建立 Windows 排程任務

  1. 開啟「工作排程器」→「建立基本工作」
  2. 觸發條件:每日、指定時間(如凌晨 02:00)
  3. 動作:「啟動程式」→ 程式:cmd.exe、引數:/c D:\backup\Bak.bat
  4. 勾選「使用最高權限執行」
  5. 條件/設定頁可依需求調整(網路可用時才執行等)

3. 驗證與維護

  • 檢查 D:\backup\data.log 確認 EXP 成功
  • 定期抽檢 imp 測試還原可用性
  • 磁碟空間監控:備份目錄佔用超過閾值發送告警
  • Oracle 升級/遷移時同步更新連線字串與帳密

進階擴充

  • 改用 RMAN 物理備份(需編寫 .rman 腳本配合 rman cmdfile=backup.rman)
  • 加入郵件通知:批次檔末尾呼叫 PowerShell Send-MailMessage
  • 備份檔上傳至雲端/異地:配合 rclone、azcopy 等工具

批次檔 + 排程器 + FORFILES,輕量級實現 Windows 環境 Oracle 每日備份閉環。

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