zoukankan      html  css  js  c++  java
  • 【备忘录】ORACLE数据库每日计划EXPDP备份

     

     
    1、OracleBackup_expdp版本|oracle.bat文件
    还需手动更改的内容如下:
    调用格式需改成call %~dp0OracleBackup 数据库 用户名 密码 文件夹名称
    2、【ORACLE语句】创建导出路径.txt文件
    还需手动更改的内容如下:
    E:appAdministrator在此路径下还需手动创建dpdata文件夹;
    给用户授权读写导出目录sdemis3_t0需改成相对应数据库名称
     
    3、OracleBackup_expdp版本|OracleBackup.bat文件
    还需手动更改的内容如下:
    变量设置模块SRC路径和【ORACLE语句】创建导出路径保持一致;
     
    4、需将oracle.bat加到每日计划里面
    时间设置为3天执行一次。

    oracle.bat

    @ECHO OFF
    REM 调用格式:call %~dp0OracleBackup 数据库 用户名 密码 文件夹名称
    
    ECHO ----------------------------
    ECHO   服务器:XXX.XXX.X.X
    ECHO ----------------------------
    ECHO.
    ECHO --XXX:
    ECHO.
    ECHO XXX:用户名 密码
    call %~dp0OracleBackup 数据库 用户名 密码 文件夹名称
    ECHO.

      OracleBackup.bat

    @ECHO OFF
    REM EMIS4开发数据库备份脚本,建议每周执行两次
    REM !!!用户应当具备expdp导出的权限
    REM !!!使用expdp方式导出,使用directory=dpdata,映射到数据库服务器上的E:appAdministratordpdata
    REM 参数:OracleBackup 数据库 用户名 密码 文件夹名称
    REM -----------------------变量设置--------------------------
    REM Oracle中设置的DPDATA别名
    SET DIRECTORYNAME=dpdata
    REM Oracle中设置的DPDATA物理路径(位于ORACLE服务器上)
    SET SRC=E:appAdministratordpdata
    REM rar所在的路径
    SET RAR=%~dp0rar.exe
    REM 本次备份的文件的文件名(不包含后缀)
    SET FILE=%2_%date:~0,4%%date:~5,2%%date:~8,2%
    REM 指定要保留的天数
    SET DaysAgo=60
    REM 指定要保留的最小文件个数
    SET ReserveNum=3
    REM -----------------------程序开始--------------------------
    ECHO 创建存放文件夹
    md  %SRC%%4
    ECHO 按日期完整导出EMIS开发数据库
    expdp %2/%3@%1 directory=%DIRECTORYNAME% dumpfile=%FILE%.dmp schemas=%2
    ECHO 将导出的数据库进行压缩
    %RAR% a -m5 -s -r -ep1 -y -idq %SRC%%4\%FILE%.rar %SRC%%FILE%.dmp
    ECHO 删除临时文件,只保留压缩后的数据库包
    REM 如果压缩失败,不删除DMP文件
    if exist "%SRC%%4\%FILE%.rar" (DEL "%SRC%%FILE%.dmp")
    REM 如果DMP存在(压缩失败),复制到目标路径
    if exist "%SRC%%FILE%.dmp" (MOVE /Y "%SRC%%FILE%.dmp" "%SRC%%4\%FILE%.dmp")
    del %SRC%export.log
    
    REM 按文件的修改日期,删除DaysAgo以前的数据(暂时不用)
    REM forfiles /p %SRC%%4 /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
    
    REM 计算要保留的最小日期
    CALL :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
    SET /a PassDays-=%DaysAgo%
    CALL :DaysToDate %PassDays% DstYear  DstMonth DstDay
    REM 日期格式字符串为yyyyMMdd
    SET DstDate=%DstYear%%DstMonth%%DstDay%
    
    ECHO 将删除日期为 %DstDate% 及以前的数据!
    SETLOCAL ENABLEDELAYEDEXPANSION
    ECHO 删除路径中的%DaysAgo%天以前的数据
    for /r "%SRC%%4" %%a in (*.*) do (
        REM 记录备份文件个数
        SET "FileNum=0"
        for /f "delims=" %%i in ('dir /B /A-D "%SRC%%4" 2^>nul') do set /a filenum+=1
        REM 防止备份出问题后,将所有备份文件删完,保留指定个数的备份文件
        if !FileNum! leq %ReserveNum% (
            ECHO 备份文件个数少于%ReserveNum%个,退出删除!
            GOTO :EOF
        )
        REM 截取文件名中的日期部分
        SET "FileDate=%%a"
        SET "FileDate=!FileDate:~-12,-4!"
        if "!FileDate!" leq "%DstDate%" (
            if exist "%%a" (DEL /f /q "%%a")
        )
    )
    ENDLOCAL
    
    GOTO :EOF
    
    :DateToDays %yy% %mm% %dd% days
    SETLOCAL ENABLEEXTENSIONS
    SET yy=%1&SET mm=%2&SET dd=%3
    IF 1%yy% LSS 200 IF 1%yy% LSS 170 (SET yy=20%yy%) ELSE (SET yy=19%yy%)
    SET /a dd=100%dd%%%100,mm=100%mm%%%100
    SET /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
    SET /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
    ENDLOCAL&SET %4=%j%&GOTO :EOF
    
    :DaysToDate %days% yy mm dd
    SETLOCAL ENABLEEXTENSIONS
    SET /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
    SET /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
    SET /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
    (IF %mm% LSS 10 SET mm=0%mm%)&(IF %dd% LSS 10 SET dd=0%dd%)
    ENDLOCAL&set %2=%yy%&SET %3=%mm%&SET %4=%dd%&GOTO :EOF
    Rar.exe

    完整下载  ORACLE数据库EXPDP备份.zip

  • 相关阅读:
    CNN网络改善的方法——池化
    tensorflow 卷积层
    CNN输出维度的计算
    CNN滤波器
    CNN如何识别一幅图像中的物体
    什么是卷积?
    windows 和 linux 安装 tensorflow
    终端安装opencv
    css3圆形光环闪烁效果
    微信小程序
  • 原文地址:https://www.cnblogs.com/haozhenjie819/p/9451873.html
Copyright © 2011-2022 走看看