Windows下Oracle文件的自动备份与ftp自动上传

浏览: 5482
环境说明
操作系统:Windows平台
环境:Oracle11g
FTP: 192.168.148.121 用户:dell 密码:123
要求:上传当天备份的数据库文件到FTP服务器,并删除windows平台下前一天的数据库备份文件
解决方案:利用任务计划、批处理文件和 FTP功能,来实现 Windows下自动备份数据库文件到远程FTP服务器并删除指定日期前的备份

具体 操作步骤如下
1、完成 Windows平台下Oracle 自动备份详细步骤 http://www.flybi.net/article/32
2、创建批处理 windowbackuptoftp.bat 文件
windowbackuptoftp.bat 中详细内容如下
@echo off
color 0a
title FTP自动上传
mode con cols=120 lines=50
echo.
echo *************************************************
echo 说 明
echo 本脚本可以方便用户自动向FTP上传当天的文件到 (---大于当天getdate() 120的形式, --删除一天前的数据)
echo 指定远程路径,与计划任务配合使用来实现数据库备份
echo *************************************************
echo
echo 10秒后开始下载...
echo open 192.168.148.121>ftp.txt
echo dell>>ftp.txt
echo 123>>ftp.txt
forfiles /p F:\autobackup /s /m *.dmp /d +%date:~0,10% /c "cmd /c echo put @file>>ftp.txt"
echo bye>>ftp.txt
C:\Windows\System32\ftp.exe -i -s:ftp.txt
forfiles -p "F:\autobackup" -s -m *.dmp /D -1 /C "cmd /c del @path>>ftp.txt"
exit


说明:forfiles 从 F:\autobackup查找对应的文件。
echo %date:~0,10% 等于2014-04-08 大于当天日期的数据库备份文件
cmd /c 可以在引号里将多条命令(包括批处理里的语句)用'&&'连接起来,达到将多条命令化为一条命令的目的
-1 保留最新1天的备份,使用 Resource kit 里的命令 FORFILES 删除老备份文件
del 删除
put 上传
ftp -s:ftp.txt 意思是,读取fxp.txt里的参数,执行ftp命令,命令执行完后,对应的文件日志下载到对方计算机里了。

DOS批处理命令(forfiles) 详解
Forfiles 
从文件夹或树中选择要进行批处理的文件。
语法
forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]]
参数
/p Path 指定Path,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号(.) 指定。
/m SearchMask 按照SearchMask 搜索文件。默认的SearchMask 是[i].[/i]。
/s 指示forfiles 在子目录中搜索。
/c Command 在每个文件上运行指定的Command。带有空格的命令字符串必须用引号括起来。默认的Command 是"cmd /c echo @file"。
/d[{+ | -}] [{MM/DD/YYYY | DD}] 选择日期大于或等于(+)(或者小于或等于(-))指定日期的文件,其中MM/DD/YYYY 是指定的日期,DD 是当前日期减去DD 天。如果未指定+ 或-,则使用+。DD 的有效范围是0 - 32768。
/? 在命令提示符下显示帮助。
注释
•Forfiles 最常用于批处理文件中。
•Forfiles /s 与dir /s 类似。
•下表列出了可在/cCommand 命令字符串中使用的变量。
变量描述
@file 文件名
@fname 无扩展名的文件名
@ext 文件扩展名
@path 文件的完整路径
@relpath 文件的相对路径
@isdir 如果文件类型是目录,则计算值为TRUE,否则值为FALSE
@fsize 用字节表示的文件大小
@fdate 文件中上次修改的日期戳
@ftime 文件中上次修改的时间戳
•使用forfiles,可以在多个文件上运行命令或将参数传递给多个文件。例如,可以在树中带有[i].txt 扩展名的所有文件上运行TYPE 命令。或者,可以用文件名“Myinput.txt”作为第一个参数,在C:\ 驱动器上执行每个批处理文件([/i].bat)。
•通过使用forfiles,可以执行下列任何操作:使用/d 按照绝对或相对日期选择文件。
•使用诸如@fsize(文件大小)和@fdate(文件日期)这样的变量构建文件的存档树。
•使用@isdir 变量区分文件和目录。
•通过在命令行中包含特殊字符和使用十六进制代码0xHH 环绕字符来格式化输出内容。
•Forfiles 通过在旨在仅处理单个文件的工具上执行“循环子目录”标记来发挥作用



2、添加一个任务计划 TSFTPPlan
开始 > 所有程序 > 附件 > 系统工具 > 任务计划 > 添加任务计划 > 下一步 > 在 浏览 中查找刚刚写好的windowbackuptoftp.bat 文件 > 任务名输入TSFTPPlan,执行这个任务选择每天,下一步 > 起始时间下午12:00,起始日期2009-7-11,下一步 > 输入用户名及密码,用户名要求是管理员权限用户名,下一步 > 完成
点击"完成"之后,会在任务计划栏目下新增一个名为"TSFTPPlan"的任务计划,表明已经配置完毕。

推荐 0
本文由 梁勇 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册