@echo off
echo ================================================
echo Windows环境下Oracle数据库的备份脚本
echo 1. 使用当前日期命名备份文件。
echo 2. 自动删除3天前的备份。
echo ================================================
::以“YYYYMMDD”格式取出当前时间。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
::创建备份目录。
if not exist "C:\backup\data" mkdir C:\backup\data
if not exist "C:\backup\log" mkdir C:\backup\log
for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do set TODAY=%%i%%j%%k
set EXPLOG=C:\backup\log\%TODAY%.log
echo 开始备份
exp %USER%/%PASSWORD%@%DATABASE% grants=y owner=%DATABASENAME%
echo 备份完成
echo 删除7天前的备份。
forfiles /p "C:\backup\data" /s /m *.* /d -3 /c "cmd /c del @path"
forfiles /p "C:\backup\log" /s /m *.* /d -3 /c "cmd /c del @path"
echo 推送到指定pc共享目录
net use X: \\%另一台服务器ip%\%指定目录% "%PASSWORD%" /user:"%USER%"
xcopy C:\backup\data\*.dmp X:\ /s /e /y /d
net use X: /del
exit