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

:2014年11月06日 51cto博客
分享到:

exp方式导出:1、根据日期自动生成 Oracle 备份文件@echo off  echo 正在备份Oracle数据库,请稍等......  exp userid='用户名/密码@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%da...

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
 
-----------------------------------
©著作权归作者所有:来自51CTO博客作者M_ling的原创作品,请联系作者获取转载授权,否则将追究法律责任
windows下oracle数据库自动备份bat脚本
https://blog.51cto.com/meiling/1573848

[我要纠错]
文:宋聪乔&发表于江苏
关键词: 方式 导出 根据 日期 自动生成

来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

点个赞
0
踩一脚
0

您在阅读:windows下oracle数据库自动备份bat脚本 原创

Copyright©2013-2024 JSedu114 All Rights Reserved. 江苏教育信息综合发布查询平台保留所有权利

苏公网安备32010402000125 苏ICP备14051488号-3技术支持:南京博盛蓝睿网络科技有限公司

南京思必达教育科技有限公司版权所有   百度统计

最热文章
最新文章
  • 卡尔蔡司镜片优惠店,镜片价格低
  • 苹果原装手机壳