美文网首页
Oracle自动备份 脚本(批处理)

Oracle自动备份 脚本(批处理)

作者: Thresh0ld | 来源:发表于2017-04-25 10:22 被阅读122次

    如果您是在找增量备份的,您不用往下看了,有好的软件或脚本欢迎在下方留言。

    不废话,贴代码。根据日期创建目录。建议一天一备。

    @echo off  
    REM ###########################################################  
    REM # Windows Server下Oracle数据库自动备份批处理脚本 
    REM # 使用expdb命令导出需要先在数据库中创建备份文件存贮目录,sql如下:
    REM # create or replace directory IRS_DATA_BAK_DIR as 'D:\oraclebak'; 
    REM ###########################################################  
    REM 取当前系统时间,可能因操作系统不同而取值不一样  
    set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
    set CURMON=%date:~0,4%%date:~5,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%
    REM 设置所有者、用户名和密码  
    set OWNER=服务名
    set USER=数据库用户名
    set PASSWORD=数据库密码
    REM 创建备份用目录,目录结构为oraclebak/
    REM 切换目录
    d:  
    if not exist "oraclebak"                     mkdir oraclebak
    cd oraclebak
    set FILENAME=%OWNER%_%CURDATE%_%CURTIME%.DMP  
    set EXPLOG=%OWNER%_%CURDATE%_%CURTIME%_log.log  
    REM 调用ORACLE的exp命令导出用户数据前请确保
    REM IRS_DATA_BAK_DIR已事先创建好 
    expdp %USER%/%PASSWORD%@%OWNER% DIRECTORY=IRS_DATA_BAK_DIR DUMPFILE=%FILENAME% LOGFILE=%EXPLOG%
    REM exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% owner=%USER% log=%EXPLOG% grants=n
    REM 调用rar进行压缩  
    "C:\Program Files\WinRAR\Rar" a -m5 -dw D:\oraclebak\%OWNER%_%CURDATE%_%CURTIME%".rar" D:\oraclebak\%OWNER%_%CURDATE%_%CURTIME%.DMP  
    

    简单说下注意事项:

    1. 运行这个批处理前需要在数据库中执行一条SQL语句(PLSQL中粘贴执行一下即可):
    create or replace directory IRS_DATA_BAK_DIR as 'D:\oraclebak'; 
    
    1. 请更改批处理中的
    set OWNER=服务名
    set USER=数据库用户名
    set PASSWORD=数据库密码
    
    1. 请确保你的系统安装了WinRAR,如果WinRAR不在C盘,请更改为相应路径。如果你不需要压缩就直接把最后那段WinRAR压缩DMP的代码删掉即可。

    2. 至于怎么自动备份,想必大家已经想到了,就是使用计划任务,添加个时间到点自动执行这个批处理即可。

    image.png image.png image.png
    关注我的公众号.jpg

    相关文章

      网友评论

          本文标题:Oracle自动备份 脚本(批处理)

          本文链接:https://www.haomeiwen.com/subject/qpamzttx.html