oracle 定时删除3天前的备份数据

不需要保留那么多,按公司要求只需要保留一个星期的即可。 
1.那么有什么方法自动删除7天以前备份的*.log文件呢? 
2.服务器过多,不可能一一手动创建,有没有自动完成这个创建计划任务的批处理呢? 
首先要解决的是自动删除7天以前备份的log文件,然后创建一个可以自动创建一个每 
周指定日期指定时间运行一次该自动删除的批处理

一:删除7天以前备份的文件 
命令 
FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

方法1: 
描述:可以删除7天以前的后缀名为log的日志文件。如今天是6.29,那么会删除6.22 
号以前创建的文件。不会删除到回收站。 
指定路径为要删除的文件夹路径,该批处理可以放在任意文件夹下。 
forfiles /p D:/aizzw/LOG /m *.log -d -7 /c "cmd /c del /f @path" 
参数解释: 
这里的/p 指的是要删除的备份文件路径 
        /m 指的是要匹配的字符,通配符为*号,后缀名可以根据实际情况修改。 
如zzw*.log;*.bak;*.txt
-d 指的是日期,“-d -7”指的是从但前日期当前日期往前减7天。 
/c 指的是执行命令 
@path 返回文件完整路径
方法2: 
描述:可以删除7天以前的后缀名为log的日志文件。 
不需要指定路径,必须放在要删除日志的文件下。删除当前文件夹下的匹配文件。 
forfiles /m *.log -d -7 /c "cmd /c del /f @path" 
以上批处理已经在windows 2003的虚拟机上测试通过

方法3:
为网友提供,可适用于xp,2000,而forfiles默认只有2003以上的系统才有。

::删除F:/文件备份里的 7天前的txt文件
::被删除的文件日期以文件创建日期为主
@echo off
::取7天之前的日期.
>deldata_zw.zhu.vbs echo wscript.echo dateadd("d",-7,date)
for /f "tokens=1,2,3* delims=-" %%i in (‘cscript /nologo deldata_zw.zhu.vbs‘) do (
set y=%%i
set m=%%j
set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set rq=%y%-%m%-%d%
echo 注意:即将删除 %rq% 以前建立的文件
pause
::判断文件
for /f "skip=4 delims=" %%i in (‘dir/tc F:/TEST/*.log‘) do call :w "%%i"
del deldata_zw.zhu.vbs
goto :eof
:w
for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
set var=%1
set num=%var:~1,10%
if %num% lss %rq% del /q F:/TEST/%str%

二:自动创建每周运行一次的计划任务 
创建计划任务可用at,schtasks命令,schtasks提供了很多参数 
命令schtasks 
SCHTASKS /Create [/S system [/U username [/P [password]]]]
    [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
    [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
    [/RI interval] [ {/ET endtime | /DU duration} [/K] ]
    [/SD startdate] [/ED enddate] [/IT] [/Z] [/F] 
方法: 
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:/aizzw/del-7.bat /sc 
weekly /d mon /st 01:00
start %systemroot%/tasks
echo 创建成功,请检查...
pause
del /f Create.bat
参数解释: 
schtasks /create 指的是创建计划任务 
/tn 指定计划任务的名称 
/ru 指定运行该批处理的账号,如果去掉该参数则默认为当前账户运行,会提示输入密码。 
一个计划任务所用的账号如果密码变动后该批处理就不再会运行成功 
所以我这里使用系统账号system,密码就省略不写。
/rp   指定账号的密码 
/tr 指定程序所在路径,这里为指定要执行的批处理存放路径。 
/sc 为指定运行的周期 
/d 为日期.这里mon为英文单词缩写,周一 
/st 为运行时间 
start %systemroot%/tasks 这一句只是为了弹出计划任务窗口查看创建成功与否 
del /f Create.bat 为创建完成后自动删除创建该计划任务的批处理 
schtasks命令详细解释可以参见微软的 
http://technet.microsoft.com/zh-cn/cc772785 (WS.10).aspx#BKMK_create 
附件中有我实际操作的批处理供下载

时间: 2024-10-14 00:09:36

oracle 定时删除3天前的备份数据的相关文章

mysql定时删除当前时间前分钟的数据

mysql定时删除当前时间前分钟的数据 2013-01-31      0个评论       作者:上官车月 收藏    我要投稿 mysql定时删除当前时间前分钟的数据 Sql代码  www.2cto.com SET GLOBAL event_scheduler = ON; delimiter $$ drop event if exists e_wom_stat; create event e_wom_stat on schedule EVERY 1 day STARTS '2013-01-0

sql server 批量备份数据库及删除N天前的备份数据

很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 -

linux 下备份MySQL数据库 并删除7天前的备份数据

#!/bin/bash #备份数据库hz jshuabo sdhuabo name=$(date +%Y%m%d) /alidata/server/mysql-5.1.73/bin/mysqldump -u root -p123456 hz > /root/sqlBackup/hz.$name.sql /alidata/server/mysql-5.1.73/bin/mysqldump -u root -p123456 jshuabo > /root/sqlBackup/jshuabo.$na

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

#!/bin/bash #设置Oracle数据库运行账号及oracle的系统环境变量 export ORACLE_BASE=/data/oracle export ORACLE_HOME=$ORACLE_BASE/product/10g export ORACLE_SID=test export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/li

Linux下自动备份Oracle数据库并删除指定天数前的备份

Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务器 mkdir -p /backup/oracledata #新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Or

Debian下自动备份文件并上传到远程FTP服务器且删除指定日期前的备份Shell脚本

说明:  1.备份目录/home/osyunwei下面所有的文件到/home/osyunweibak里面,并且保存为osyunwei20120701.tar.gz的压缩文件格式(2012_07_01是指备份执行时当天的日期),最后只保留最近7天的备份 2.上传/home/osyunweibak里面的备份文件到远程FTP服务器上,并且只保留最近7天的备份. 3.FTP服务器:192.168.21.139 端口:21 账号:osyunwei 密码:123456 osyunweibak为备份文件存放目

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 [sql] view plaincopy <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</span> 由于一些业务需求,我们可能需要定时清除数据库一些废弃的数据

MSSQL Server2012备份所有数据库到网络共享盘上面,并自动删除几天前的备份。。

--要备份到哪一服务的IP网络位置,要提前打开文件夹共享.这里还要输入用户名和密码,下面这一行是建立共享 exec master..xp_cmdshell 'net use \\192.168.8.108\DBBak Password /user:192.168.1.108\administrator',NO_OUTPUT go declare @s nvarchar(200),@del nvarchar(200)select @s='',@del='' --自动备份,并删除4天前的备份.可以随

Windows定时删除某天前文件的批处理脚本

备注:1.如XP下因为没有forfiles.exe,拷贝windows2003下的forfiles.exe文件到XP的system32目录即可使用forfiles命令.  2.该文档适用于windows客户端操作系统xp win7/8/10,windows服务器端操作系统 server 2003/2008/2012/2016.3.如有错漏,烦劳指出,谢谢! forfiles.exe及帮助 描述:     选择一个文件(或一组文件)并在那个文件上执行一个命令.这有助于批处理作业. 语法: forf