数据库自动备份脚本并删除前3天的备份
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo 1. 使用当前日期命名备份文件。 echo 2. 自动删除3天前的备份。 echo ================================================ ::以“YYYYMMDD”格式取出当前时间。 set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2% set CURTIME=%time:~0,2% REM 小时数如果小于10,则在前面补0@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo 1. 使用当前日期命名备份文件。 echo 2. 自动删除3天前的备份。 echo ================================================ ::以“YYYYMMDD”格式取出当前时间。 set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2% set CURTIME=%time:~0,2% REM 小时数如果小于10,则在前面补0 if "%CURTIME%"==" 0" set CURTIME=00 if "%CURTIME%"==" 1" set CURTIME=01 if "%CURTIME%"==" 2" set CURTIME=02 if "%CURTIME%"==" 3" set CURTIME=03 if "%CURTIME%"==" 4" set CURTIME=04 if "%CURTIME%"==" 5" set CURTIME=05 if "%CURTIME%"==" 6" set CURTIME=06 if "%CURTIME%"==" 7" set CURTIME=07 if "%CURTIME%"==" 8" set CURTIME=08 if "%CURTIME%"==" 9" set CURTIME=09 set CURTIME=%CURTIME%%time:~3,2%%time:~6,2% ::设置用户名、密码和要备份的数据库。 set USER=ciss set PASSWORD=ciss set DATABASE=orcl ::创建备份目录。 if not exist "G:\oracle_data\ciss_backupdata\%BACKUPDATE% " mkdir G:\oracle_data\ciss_backupdata\%BACKUPDATE% if not exist "G:\oracle_data\ciss_backupdata\%BACKUPDATE%\log" mkdir G:\oracle_data\ciss_backupdata\%BACKUPDATE%\log set DATADIR=G:\oracle_data\ciss_backupdata set LOGDIR=G:\oracle_data\ciss_backupdata\%BACKUPDATE%\log :: 在这里打算使用数据泵进行备份数据库 结果遇到 无法打开日志文件 和操作无效的 错误! expdp %USER%/%PASSWORD%@%DATABASE% directory=ciss_backupdata DUMPFILE=%USER%_%BACKUPDATE%%CURTIME%.dmp LOGFILE=log_%BACKUPDATE%_%CURTIME%.log SCHEMAS=CISS ::删除3天前的备份。 ::FORFILES /p G:\oracle_data\ciss_backupdata /S /D -3 /C "cmd /c IF @isdir == TRUE rmdir /S /Q @path" rem forfiles /p "%LOGDIR%" /s /m *.* /d -3 /c "cmd /c del @path" ::xcopy DATADIR\%DATADIR%\%USER%_%BACKUPDATE%%CURTIME%.dmp \\192.168.1.55\测试版本\数据库备份\CISS rem move "G:\oracle_data\ciss_backupdata\*.dmp " "G:\oracle_data\ciss_backupdata\%BACKUPDATE%" rem move "G:\oracle_data\ciss_backupdata\*.log " "G:\oracle_data\ciss_backupdata\%BACKUPDATE%\log" move "G:\oracle_data\ciss_backupdata\*.dmp " "G:\oracle_data\ciss_backupdata\%BACKUPDATE%" move "G:\oracle_data\ciss_backupdata\*.log " "%LOGDIR%" FORFILES /p G:\oracle_data\ciss_backupdata /S /D -3 /C "cmd /c IF @isdir == TRUE rmdir /S /Q @path"