windows server2012服务器bat+计划任务实现oracle数据库自动备份
主要是通过windows任务计划来定时执行数据库备份脚本(exp,逻辑备份)
1.编写数据库备份脚本
新建文本文档bak.txt,文档内容如下:
@echo off echo ******数据导出开始****** set CURDATE=%date:~0,4%-%date:~5,2%-%date:~8,2% set CURTIME=%time:~0,2% REM 小时数小于10时在前面补0 if "%CURTIME%" lss 10 set CURTIME=0%CURTIME% REM set CURTIME=%CURTIME%%time:~3,2%%time:~6,2% REM 设置所有者、用户名和密码,按照实际信息修改即可,SID一般默认是orcl set OWNER=库表所有者 set USER=用户名 set PASSWORD=密码 set SERVERNAME=ip:port/SID
REM 创建备份目录及文件夹 if not exist "D:\backup\database" mkdir D:\backup\database if not exist "D:\backup\database\%CURDATE%\" mkdir D:\backup\database\%CURDATE%\ set CURDIR=D:\backup\database\%CURDATE% set FILENAME=%CURDIR%\%OWNER%-%CURDATE%-%CURTIME%.dmp set EXPLOG=%CURDIR%\%OWNER%-%CURDATE%-%CURTIME%-log.log REM 调用ORACLE的exp命令导出用户数据 echo exp.exe %USER%/%PASSWORD%@%SERVERNAME% file=%FILENAME% log=%EXPLOG% owner=%OWNER%
REM 需修改为exp命令所在实际路径信息或者将exp.exe添加到系统环境变量 盘符\路径\exp.exe %USER%/%PASSWORD%@%SERVERNAME% file=%FILENAME% log=%EXPLOG% owner=%OWNER% echo ******导出文件:%FILENAME% echo ******导出日志:%EXPLOG% echo ******数据导出结束******
REM 若需加密压缩且删除原有文件需取下面两行注释,且将WinRAR实际路径信息修改
REM set RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe" REM %RAR_CMD% a -ptest123 -df "%CURDIR%\%OWNER%-%CURDATE%-%CURTIME%-back.rar" "%FILENAME%" "%EXPLOG%"
REM pause命令会让脚本程序暂停并打印输出 “请按任意键继续...”字样,若脚本不加pause,批处理命令执行完成后cmd窗口即关闭;建议调试无问题后注释掉pause命令以防后续定时计划出现问题 pause
然后将bak.txt文件后缀修改为bat。
2.配置windows任务计划程序定时执行脚本
打开windows任务计划程序,如下所示:
点击右侧【创建任务】,如下所示:
勾选红框所示选项(建议实现administrator用户来执行,【配置】栏可按照实际选择)。
然后选择【触发器】并点击【新建】:
设置任务计划执行的周期、开始时间后,点击【操作】,并点击【新建】来新建操作:
点击红框后的浏览,选择数据库备份脚本bak.bat;
【条件】界面按需勾选;
【设置】界面需注意如下红框选项:
特别是规则适用的选择,默认是【请勿启动新实例】
如果bak.bat脚本中注释了末尾的pause命令,这里用默认的是没有问题的,计划任务会正确定期执行;
如果脚本中没有注释pause,需要选择【停止现有实例】,否则计划任务在第二次执行时,会提示【操作员或系统管理员拒绝了请求】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?