1:创建一个批处理文件 dbBackUp.bat
2:编写以下脚本:
@echo off
echo ================================================
echo Bakup Oracle database on Windows Server
echo 1.Use current datetime formatter for file name,formatter is:YYYYMMDD_HH
echo 2.Auto delete backup file which was backed before 7 days ago.
echo ================================================
::文件名,以YYYY_MM_DD格式命名
set BACKUPDATE=%date:~0,4%_%date:~5,2%_%date:~8,2%
echo BACKUPDATE=%BACKUPDATE%
set USER=tydic_kmb
set PASSWORD=tydic123
set DATABASE=192.168.100.10:1521/testdb
if not exist "D:\oracle_bak" mkdir D:\oracle_bak
if not exist "D:\oracle_bak\log" mkdir D:\oracle_bak\log
set DATADIR=D:\oracle_bak
set LOGDIR=D:\oracle_bak\log
::备份的文件名
set FILENAME=testdb
exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%FILENAME%_%BACKUPDATE%.dmp owner=%USER% log=%LOGDIR%\log_%FILENAME%_%BACKUPDATE%.log
::删除7天前的备份文件,包括备份日志文件
forfiles /p "%DATADIR%" /s /m *.dmp /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.log /d -7 /c "cmd /c del @path"
3:配置Windows 的计划任务,定时调用这个脚本就可了。