• 当前位置: 首 页 > 教育百科 > 学历/技能 > 正文

    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
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证