一、 Oracle自动备份单表一个月数据

方式一:三步处理(建批处理文件,写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数据库自动备份一个月的数据。

原文地址:https://www.cnblogs.com/jijm123/p/12420839.html