windows下oracle数据库自动备份bat脚本
exp方式导出:
为景东等地区用户提供了全套网页设计制作服务,及景东网站建设行业解决方案。主营业务为成都网站制作、成都做网站、景东网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
1、根据日期自动生成 Oracle 备份文件
@echo off echo 正在备份Oracle数据库,请稍等...... exp userid='用户名/密码@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.log owner=res echo 任务完成!
2、根据日期时间分秒自动生成 Oracle 备份文件
@echo off echo 正在备份Oracle数据库,请稍等...... exp userid='用户名/密码@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%.dmp log=D:\bak\res_%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:\backup\data" mkdir D:\backup\data if not exist "D:\backup\log" mkdir D:\backup\log set DATADIR=D:\backup\data set LOGDIR=D:\backup\log 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结尾执行完后,会提示按任意键来继续或退出,这样我就能知道是什么报错。
expdp方法导出:
用exit结尾备份完后自动退出:
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo 1. 使用当前日期命名备份文件。 echo 2. 自动删除10天前的备份。 echo 3.使用expdb命令导出需要先在数据库中创建备份文件存贮目录,sql如下: echo create directory backdir as 'D:\backup\data'; 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:\backup\data ::创建备份目录。 if not exist "D:\backup\data" mkdir D:\backup\data ::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 Files\WinRAR\Rar" a -m5 -dw %dumpbame%_%BACKUPDATE%".zip" %dumpbame%_%BACKUPDATE%.DMP ::方法二用winrar把log、dmp文件压缩成zip并保留原始文件log,dmp文件(任选一种),去掉dw这个参数 "C:\Program Files\WinRAR\WinRAR.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
分享文章:windows下oracle数据库自动备份bat脚本
标题来源:http://scyanting.com/article/jojhpi.html