windows 2003下oracle数据库定时自动备份
来源:互联网 发布:c语言从入门到精通pdf 编辑:程序博客网 时间:2024/05/19 17:07
步骤一:创建bacup.bat脚本
------------开始---------------@echo off::--------------------------------------------------::导出数据库,保留90天的备份::--------------------------------------------------::***********************获得以前的日期*删除90天的******************************::定义距离今天多少天日期开始删除set N=90::定义今天的日期set CURRENT_DATE=%date:~0,4%%date:~5,2%%date:~8,2%::定义获得年的标示set CURRENT_YEAR=%date:~0,4%::定义去年的标示set /a LAST_YEAR=%CURRENT_YEAR%-1::定义获得月的标示set SIGNMONTH=%date:~5,1%if %SIGNMONTH% EQU 0 (set CURRENT_MONTH=%date:~6,1%) else (set CURRENT_MONTH=%date:~5,2%)::定义上个月的标示if %CURRENT_MONTH% GTR 1 (set /a LAST_MONTH=%CURRENT_MONTH%-1) else (set /a LAST_MONTH=12)::定义获得天的标示set SIGN=%date:~8,1%if %SIGN% EQU 0 (set CURRENT_DAY=%date:~9,1%) else ( set CURRENT_DAY=%date:~8,2%)::判断是否闰年:0表示非闰年,1表示闰年set /a CONDITION1=%CURRENT_YEAR%%%4set /a CONDITION2=%CURRENT_YEAR%%%400set /a CONDITION3=%CURRENT_YEAR%%%100if %CONDITION1% EQU 0 ( if %CONDITION2% EQU 0 ( set /a LEAP_YEAR_CHECK=1 ) else if %CONDITION3% NEQ 0 ( set /a LEAP_YEAR_CHECK=1) else ( set /a LEAP_YEAR_CHECK=0)) else ( set /a LEAP_YEAR_CHECK=0)::定义上个月的天数,如果是闰年,则2月份是29天,否则为28天set LAST_MONTH_DAYS=0if %LAST_MONTH% EQU 1 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 3 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 5 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 7 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 8 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 10 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 12 (set /a LAST_MONTH_DAYS=31)if %LAST_MONTH% EQU 4 (set /a LAST_MONTH_DAYS=30)if %LAST_MONTH% EQU 6 (set /a LAST_MONTH_DAYS=30)if %LAST_MONTH% EQU 9 (set /a LAST_MONTH_DAYS=30)if %LAST_MONTH% EQU 11 (set /a LAST_MONTH_DAYS=30)if %LAST_MONTH% EQU 2 (if %LEAP_YEAR_CHECK% EQU 0 (set /a LAST_MONTH_DAYS=28) else (set /a LAST_MONTH_DAYS=29))if %LAST_MONTH_DAYS% EQU 0 (goto END)::定义最终的年set BEFORE_YEAR=0::定义最终的月set BEFORE_MONTH=0::定义最终的天set BEFORE_DAY=0::定义距离今天N天前的日期set BN_DAYS_AGO=0::*********************变量定义完成**********************************::如果今天天数大于Nif %CURRENT_DAY% GTR %N% ( set /a BEFORE_YEAR=%CURRENT_YEAR%)&( set /a BEFORE_MONTH=%CURRENT_MONTH%)&( set /a BEFORE_DAY=%CURRENT_DAY%-%N% ) else if %CURRENT_MONTH% NEQ 1 ( set /a BEFORE_YEAR=%CURRENT_YEAR%)&( set /a BEFORE_MONTH=%LAST_MONTH%)&( set /a BEFORE_DAY=%LAST_MONTH_DAYS%-%N%+%CURRENT_DAY% ) else ( set /a BEFORE_YEAR=%LAST_YEAR%)&( set /a BEFORE_MONTH=%LAST_MONTH%)&( set /a BEFORE_DAY=%LAST_MONTH_DAYS%-%N%+%CURRENT_DAY%)if %BEFORE_MONTH% LSS 10 (set BEFORE_MONTH=0%BEFORE_MONTH%)if %BEFORE_DAY% LSS 10 (set BEFORE_DAY=0%BEFORE_DAY%)set /a BN_DAYS_AGO=%BEFORE_YEAR%%BEFORE_MONTH%%BEFORE_DAY%::echo %BN_DAYS_AGO%:END exit 0::**************************获得25天以前的日期*******************************set today=%date:~0,10%set before7=%BN_DAYS_AGO% echo ******************************************************************** >> expsjsb.logecho %today% %time:~0,8%: Starting. >> expsjsb.logset timedir=%date:~0,4%%date:~5,2%%date:~8,2%md D:\backup\%timedir%if %ERRORLEVEL%==0 (echo %today% %time:~0,8%: 创建目录D:\backup\%timedir%成功。>> expsjsb.log)&(goto NEXT) if %ERRORLEVEL%==1 (echo %today% %time:~0,8%: 创建目录D:\backup\%timedir%失败或目录已经存在。>> expsjsb.log)&(goto END):NEXTecho %today% %time:~0,8%: 开始导出数据文件. >> expsjsb.logexp system/oracle file=D:\backup\%timedir%\evsjsb%timedir%.dmp log=D:\backup\%timedir%\evsjsb%timedir%.log rows=nif %ERRORLEVEL%==0 (echo %today% %time:~0,8%: 数据导出成功。>> expsjsb.log)&(goto SUC)if %ERRORLEVEL%==1 (echo %today% %time:~0,8%: 数据导出失败。>> expsjsb.log)&(goto END):SUCecho %today% %time:~0,8%: 删除90天前的备份。>> expsjsb.logif exist D:\backup\%before7% GOTO EXISTif not exist D:\backup\%before7% GOTO NOEXIST:EXISTecho %today% %time:~0,8%: Delete the directory D:\backup\%before7%. >> expsjsb.logrd /s /q D:\backup\%before7% GOTO END:NOEXISTecho %today% %time:~0,8%: The directory D:\backup\%before7% is not exist. >> expsjsb.logGOTO END:ENDecho %today% %time:~0,8%: Quit. >> expsjsb.logecho ******************************************************************** >> expsjsb.log@echo on-----------结束--------------
步骤二:创建定时任务
开始 -> 所有程序 -> 附件 -> 系统工具 -> 任务计划程序 -> 操作 -> 创建基本任务 -> 任务名输入"oracle_backup"(自定义任务名),执行这个任务选择每天,下一步 -> 起始时间下午12:00,起始日期2012-7-11,下一步 ->(启动程序)下一步 ->在 浏览 中查找刚刚写好的 backup.bat 文件 >下一步 > 完成
注:
1.在任务计划栏目下新增一个名为"oracle_backup"的任务计划,表明已经配置完毕。
2.不同系统的任务计划略有不同,但基本换汤不换药,不做一一例举
问题:系统警告"已创建新任务,但可能不能运行,因为无法设置账户信息。指定的错误是:Ox80041315:任务计划程序服务没有运行"
原因:电脑的任务计划程序服务没有启动起来。
解决:开始 > 所有程序 > 管理工具 > 服务,找到"Task Scheduler"服务,发现启动类型为"已禁用",
右键单击更改为"自动",并把它启动起来,然后重新添加一次任务计划就可以了。
0 0
- windows 2003下oracle数据库定时自动备份
- Windows下实现Oracle数据库定时自动备份批处理代码
- windows系统下oracle数据库定时自动备份
- windows系统下oracle数据库定时自动备份
- windows下定时备份oracle数据库
- windows下定时备份oracle数据库
- WINDOWS 服务器下自动备份oracle数据库
- Windows下自动备份Oracle数据库
- Oracle数据库定时自动备份批处理代码(Windows)
- Oracle数据库定时自动备份批处理代码(Windows)
- Windows Server 2003下Oracle数据库自动备份批处理脚本
- windows 2003下oracle 10G数据库自动备份
- windows下oracle定时备份
- Windows下定时备份Oracle数据库指定用户数据脚本
- Windows下定时备份Oracle数据库指定用户数据脚本
- 在windows下实现对oracle数据库的定时备份
- 在windows下实现对oracle数据库的定时备份
- Oracle数据库在Windows环境下导出并定时备份
- w3cschool HTML基础一
- realloc,malloc,calloc的区别
- 程序猿之-网购之网站选择
- USB底层协议
- Socket 客户端服务器模式 架构
- windows 2003下oracle数据库定时自动备份
- VS2012 MFC 单文档 模拟时钟日历程序
- Android 1.5: 飞行模式分析
- windows 如何查看端口占用情况
- hdu 1520 && poj2342 anniversary party树形DP
- 查询条件校验
- 程序猿之--你能当老板吗?
- 答读者问(22):一个在校学生有关持续学习的疑问及答复
- div 浮动