Windows系统下Oracle自动备份数据库,删除历史备份数据
2017-04-06 15:58
731 查看
方法步骤:
1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 。
2.创建任务计划程序触发器。
具体实现:
简单的以星期的命名导出
说明:echo 文字输出 。 set 设置变量 ,用%变量名% 来获取。
exp命令是oracle提供的dump备份命令
forfiles是windows的文件查找命令
pause 执行的时候在cmd输出显示
del 删除文件
%date%的值
在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。
windows下%date% 输出的是2017/04/06 周四 这种格式,%date:~0,11% 输出的是2017/04/06。
~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
如需要准确的时间做为文件名,请用%time%函数,参数同上。
forfiles参数说明:
/P 可是搜索的路径。在我们这里就是要在哪个目录寻找要删除的文件
/s 包含子目录
/m 根据搜索掩码搜索文件。默认为,如果要找备份处dump文件,格式为.dmp
/d 文件修改时间在某个时间之前或者之后。-7 表示7天之前的文件。
/c 表示为每个文件执行的命令,如果要删除该文件可以为”cmd /c del /F /s /q @file”。其中变量@file表示该文件名 f s q表示强制静默删除可以不用;
默认命令是 “cmd /c echo @file”。下列变量
可以用在命令字符串中:
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 “TRUE”;
如果是文件,返回 “FALSE”。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。
创建任务计划程
1在电脑附件中找到任务计划程序,然后点击打开
2点击右侧的“创建基本任务”,创建一个任务计划,填写任务名字和描述
3设置任务的执行周期,这里周期选择每天,点击下一步。再设置开始时间,一般选择在夜间备份数据库,点击下一步
4设置执行的操作是,这里是批处理,所以选择程序,点击下一步
5选择前面我们只做的bat批处理文件。即oracle备份语句文件。参数填写文件所在的目录,点击下一步,直接点击完成
6然后双击对应的计划任务名称,出现界面如下图:然后在安全选项中选择“不管用户是否登陆都要运行此程序”然后点击确定
7输入运行此任务的用户帐户信息。输入此pc端密码确定即可
1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 。
2.创建任务计划程序触发器。
具体实现:
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo 1. 使用当前日期命名备份文件。 echo 2. 自动删除7天前的备份。 echo ================================================ ::以“YYYYMMDD”格式取出当前时间。 set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2% ::设置用户名、密码和要备份的数据库。 set USER=xxx set PASSWORD=123456 set DATABASE=ORCL ::创建备份目录。 if not exist "D:\backup\data" mkdir D:\backup\data if not exist "D:\backup\log" mkdir D:\backup\log set DATADIR=D:\backup\data set LOGDIR=D:\backup\log exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log rar %DATADIR%\data_%BACKUPDATE%.rar ::删除7天前的备份。 forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path" forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path" exit
简单的以星期的命名导出
@echo off set filename=e:\rdzxbf\%date:~11,3% DEL %filename%.dmp DEL %filename%.log exp userid=kjb/dreamsoft@ORCL file=%filename%.dmp log=%filename%.log
说明:echo 文字输出 。 set 设置变量 ,用%变量名% 来获取。
exp命令是oracle提供的dump备份命令
forfiles是windows的文件查找命令
pause 执行的时候在cmd输出显示
del 删除文件
%date%的值
在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。
windows下%date% 输出的是2017/04/06 周四 这种格式,%date:~0,11% 输出的是2017/04/06。
~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
如需要准确的时间做为文件名,请用%time%函数,参数同上。
forfiles参数说明:
/P 可是搜索的路径。在我们这里就是要在哪个目录寻找要删除的文件
/s 包含子目录
/m 根据搜索掩码搜索文件。默认为,如果要找备份处dump文件,格式为.dmp
/d 文件修改时间在某个时间之前或者之后。-7 表示7天之前的文件。
/c 表示为每个文件执行的命令,如果要删除该文件可以为”cmd /c del /F /s /q @file”。其中变量@file表示该文件名 f s q表示强制静默删除可以不用;
默认命令是 “cmd /c echo @file”。下列变量
可以用在命令字符串中:
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 “TRUE”;
如果是文件,返回 “FALSE”。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。
例如: FORFILES /? FORFILES FORFILES /P C:\WINDOWS /S /M DNS*.* FORFILES /S /M *.txt /C "cmd /c type @file | more" FORFILES /P C:\ /S /M *.bat FORFILES /D -30 /M *.exe /C "cmd /c echo @path 0x09 在 30 前就被更改。" FORFILES /D 2001-01-01 /C "cmd /c echo @fname 在 2001年1月1日就是新的。" FORFILES /D +2006-11-25 /C "cmd /c echo @fname 今天是新的。" FORFILES /M *.exe /D +1 FORFILES /S /M *.doc /C "cmd /c echo @fsize" FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file" 删除三十天前的文件forfiles /p "d:\108" /s /m *.* /d -30 /c "cmd /c del @path"
创建任务计划程
1在电脑附件中找到任务计划程序,然后点击打开
2点击右侧的“创建基本任务”,创建一个任务计划,填写任务名字和描述
3设置任务的执行周期,这里周期选择每天,点击下一步。再设置开始时间,一般选择在夜间备份数据库,点击下一步
4设置执行的操作是,这里是批处理,所以选择程序,点击下一步
5选择前面我们只做的bat批处理文件。即oracle备份语句文件。参数填写文件所在的目录,点击下一步,直接点击完成
6然后双击对应的计划任务名称,出现界面如下图:然后在安全选项中选择“不管用户是否登陆都要运行此程序”然后点击确定
7输入运行此任务的用户帐户信息。输入此pc端密码确定即可
相关文章推荐
- Windows系统下Oracle自动备份数据库,删除历史备份数据
- 生产环境Mysql数据库备份脚本,Linux下网站数据定期自动备份与删除脚本,Windows下备份网站目录和数据库
- 系统损坏,移植Oracle(9.2.0.1)数据库(无备份数据文件进行恢复)
- mysql自动定时备份数据库的最佳方法-支持windows系统
- windows 2003下oracle 10G数据库自动备份
- Windows 下 Oracle数据库自动备份批处理脚本
- Windows下Oracle 9i数据库文件的自动备份。
- Windows下通过FTP自动备份数据到服务器并删除指定天数前的备份
- windows 系统下,小数据量Oracle用户物理备份
- mysql自动定时备份数据库的最佳方法-支持windows系统
- window下备份数据库到LinuxFTP服务器上并自动删除7天前数据备份文件
- windows 系统oracle数据库数据自动备份
- 数据库系统不能自动删除备份的原因之一
- Oracle 数据库备份自动执行脚本_For_Windows
- Linux下通过FTP脚本自动备份数据到windows系统
- Oracle通过JOB定时自动操作数据库删除数据
- 通过制定SQL计划和系统计划实现]SQL Server 2005数据库定期备份和删除历史备份记录
- 自动备份数据库和删除历史备份
- windows系统自动备份ftp数据以及ftp参数解释
- 利用windows任务执行批处理,实现ORACLE自动备份、删除过早备份