linux和unix下面使用shell可以很方便实现,如果windows环境下可以结合计划任务实现
1.创建备份目录d:\backup, 创建批处理命令bak.bat,编写备份脚本
exp user/passwd@orcl direct=y buffer=100000 file=d:\backup\scdd%date:~0,10% owner=('scdd') log=d:\backup\data.log forfiles /p "d:\backup" /s /m *.dmp /d -3 /c "cmd /c del @path"
说明:
exp命令是oracle提供的dump备份命令,其中的%date:~0,10%是dos里取日期的命令,例如:c:\users\qyy>echo %date:~0,10%得到2016-11-30
forfiles是windows的文件查找命令,查找在backup,dmp后缀产生三天的文件,找到后执行删除操作
2.windows定时任务每日自动执行批处理文件 3.保留最近三天的文件,自动删除以前日期的备份文件
forfiles参数说明:
/p 可是搜索的路径。在我们这里就是要在哪个目录寻找要删除的文件
/m 根据搜索掩码搜索文件。默认为*,如果要找备份处dump文件,格式为*.dmp
/d 文件修改时间在某个时间之前或者之后。-3 表示3天之前的文件。
/s 包含子目录
/c 表示为每个文件执行的命令,如果要删除该文件可以为”cmd /c del /f /s /q @file”。其中变量@file表示该文件名 f s q表示强制静默删除可以不用;cmd /c表示执行字符串指定的命令然后终断
其中@file可以返还如下结果,我们这里用@path
@file – returns the name of the file.
@fname – returns the file name without extension.
@ext – returns only the extension of the file.
@path – returns the full path of the file.
@relpath – returns the relative path of the file.
@isdir – returns “true” if a file type is a directory, and “false” for files. @fsize – returns the size of the file in bytes.
@fdate – returns the last modified date of the file.
@ftime – returns the last modified time of the file
以上所述是www.887551.com给大家介绍的windows系统下oracle数据库每天自动备份,希望对大家有所帮助