windows环境oracle11g expdp备份和impdp还原脚本
系统10个月前 (08-13)
创建一个dmp目录
sqlplus / as sysdba create directory dump_dir as 'D:\dir_DUMP'; #如果需要删除执行drop directory dump_dir; grant read,write on directory dump_dir to 用户名; select * from dba_directories; commit; exit
配置备份脚本,保存到D:\dir_DUMP\expdp.bat
@echo off echo ================================================ echo Windows环境下Oracle数据库自动备份脚本 echo 使用当前日期命名备份文件并自动删除7天前的备份 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=system set PASSWORD=oracle set DATABASE=orcl ::创建备份目录和备份 if not exist "D:\dir_DUMP\data\%BACKUPDATE%" mkdir D:\dir_DUMP\data\%BACKUPDATE% if not exist "D:\dir_DUMP\log\%BACKUPDATE%" mkdir D:\dir_DUMP\log\%BACKUPDATE% set DATADIR=D:\dir_DUMP\data\%BACKUPDATE% set LOGDIR=D:\dir_DUMP\log\%BACKUPDATE% expdp %USER%/%PASSWORD%@%DATABASE% directory=dump_dir dumpfile=%DATADIR%\%USER%_%BACKUPDATE%%CURTIME%.dmp logfile=%LOGDIR%\log_%BACKUPDATE%%CURTIME%.log parallel=4 ::删除7天前的备份 forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path" forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path" exit
设置计划任务
@ECHO OFF schtasks /create /tn "EXPDP定时任务" /sc daily /st 01:00:00 /tr "D:\dir_DUMP\expdp.bat" PAUSE EXIT
还原脚本
@echo off set backupfile=20220816.dmp set logfile=20220816.log imp system/oracle@orcl file=%backupfile% log=%logfile% FULL=Y
本站所有文章均可随意转载,转载时请保留原文链接及作者。