2022
我们一起努力

windows下oracle数据库自动备份bat脚本

exp方式导出:

1、根据日期自动生成 Oracle 备份文件

@echo off  
echo 正在备份Oracle数据库,请稍等......  
exp userid='用户名/密码@SID' file=D:bakres_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:bakres_%date:~0,4%%date:~5,2%%date:~8,2%.log owner=res  
echo 任务完成!

2、根据日期时间分秒自动生成 Oracle 备份文件

@echo off  
echo 正在备份Oracle数据库,请稍等......  
exp userid='用户名/密码@SID' file=D:bakres_%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%.dmp log=D:bakres_%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%.log
echo 任务完成!

3、用exit结尾备份完后自动退出:

@echo off   
echo ================================================   
echo  Windows环境下Oracle数据库的自动备份脚本  
echo  1. 使用当前日期命名备份文件。  
echo  2. 自动删除7天前的备份。  
echo ================================================  

::以“YYYYMMDD”格式取出当前时间。  
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%

::创建备份目录。  
if not exist "D:backupdata"    mkdir D:backupdata  
if not exist "D:backuplog"     mkdir D:backuplog  
set DATADIR=D:backupdata
set LOGDIR=D:backuplog
exp userid='用户名/密码@SID'  file=%DATADIR%data_%BACKUPDATE%.dmp log=%LOGDIR%log_%BACKUPDATE%.log  

::删除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

注:如果有时我们写bat脚本执行时一闪而过,无法排错;那么我可以在脚本的最后加个pause(如上面的脚本可以把exit换成pause),用pause结尾执行完后,会提示按任意键来继续或退出,这样我就能知道是什么报错。

windows下oracle数据库自动备份bat脚本

expdp方法导出:

用exit结尾备份完后自动退出:

@echo off   
echo ================================================   
echo  Windows环境下Oracle数据库的自动备份脚本  
echo  1. 使用当前日期命名备份文件。  
echo  2. 自动删除10天前的备份。 
echo  3.使用expdb命令导出需要先在数据库中创建备份文件存贮目录,sql如下:
echo    create directory backdir as 'D:backupdata'; 
echo ================================================  

::以“YYYYMMDD”格式取出当前时间。  
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%

::设置用户名、密码和sid。  
set bakdbname=app
set bakdbpasswd=123
set sid=orcl
set dumpbame=appbak
set bakdbhome=D:backupdata

::创建备份目录。
if not exist "D:backupdata"       mkdir D:backupdata

::expdp备份
expdp %bakdbname%/%bakdbpasswd%@%sid% directory=backdir dumpfile=%dumpbame%_%BACKUPDATE%.dmp logfile=%dumpbame%_%BACKUPDATE%.log

::切换目录
d:
cd %bakdbhome%

::调用rar进行压缩
::方法一winrar把log、dmp文件压缩成zip,不保留原始文件log,dmp文件(任选一种)
"C:Program FilesWinRARRar" a -m5 -dw %dumpbame%_%BACKUPDATE%".zip" %dumpbame%_%BACKUPDATE%.DMP

::方法二用winrar把log、dmp文件压缩成zip并保留原始文件log,dmp文件(任选一种),去掉dw这个参数
"C:Program FilesWinRARWinRAR.exe" a -m5 %dumpbame%_%BACKUPDATE%".zip" %dumpbame%_%BACKUPDATE%.log %dumpbame%_%BACKUPDATE%.DMP

::删除10天前的备份。  
forfiles /p "%bakdbhome%" /s /m *.zip /d -10 /c "cmd /c del @path"  
forfiles /p "%bakdbhome%" /s /m *.log /d -10 /c "cmd /c del @path"
forfiles /p "%bakdbhome%" /s /m *.dmp /d -10 /c "cmd /c del @path"  
exit

赞(0)
文章名称:《windows下oracle数据库自动备份bat脚本》
文章链接:https://www.fzvps.com/77449.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!