方式一:三步处理(建批处理文件,写sql文件,设置任务计划)
1、 第一步:建立一个批处理文件
@echo off Set OrclSid=orcl Set ExpUser=数据库名 Set ExpPass=数据库密码 Set FileDir=D:oracleBacklog Set SysDate=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2% Set FileName=%ExpUser%~%OrclSid%_%SysDate% @echo * * * * * * * * * * * * * * * * * * * * @echo * * * * * * * * * * * * * * * * * * * * @echo * * * * * ORACLE 数据库备份 * * * * * * @echo * * * * * * * * * * * * * * * * * * * * @echo * * * * * * * * * * * * * * * * * * * * @echo 服务名 = %OrclSid% @echo 用户名 = %ExpUser% @echo 密 码 = %ExpPass% @echo 目 录 = %FileDir% @echo 时 间 = %SysDate% @echo 文件名 = %FileName%.rar @echo 开始备份数据库... exp %ExpUser%/%ExpPass%@%OrclSid% file=%FileDir%/%FileName%.dmp log=%FileDir%/%FileName%.log tables=(T_SAP_IMPORT_DATA) query="where to_char(CREATED_DATE,'yyyy-MM-dd HH24-mi-ss') < to_char(SYSDATE,'yyyy-MM-dd HH24-mi-ss') and to_char(CREATED_DATE,'yyyy-MM-dd HH24-mi-ss')>to_char(add_months(sysdate,-1),'yyyy-MM-dd HH24-mi-ss')" @echo 数据库备份完成! @echo 登录数据库 sqlplus %ExpUser%/%ExpPass%@%OrclSid% @D:oracleBackattruncate.sql>truncate.txt @echo 导入备份的数据 imp %ExpUser%/%ExpPass%@%OrclSid% file=%FileDir%/%FileName%.dmp ignore=Y tables=(T_SAP_IMPORT_DATA) @echo 退出cmd ~exit
2、 第二步、写清除数据库并释放空间的sql文件
truncate table T_SAP_IMPORT_DATA; exit;
3、 第三步、使用windows自带的任务计划程序
A) 打开任务计划程序,新建一个基本任务计划
B) 填上名和描述,点击下一步
C)触发器选择相应的规则,如图选填每天执行一次
D) 定执行时间,点下一步
E)下一步
F) 填上批处理文件的路径和起始于的参数(批处理文件所在的文件夹)
G) 点击完成
H) 双击两下建好的任务
I)选不管用户是否登录都启动
J) 输入用户名和密码,确定就行
至此使用windows自带的任务计划程序执行批处理文件实现Oracle数据库自动备份一个月的数据。