增量存档备份批处理脚本

时间:2011-10-20 04:01:19

标签: database windows batch-file backup database-backups

我在Windows上有一个Oracle档案文件夹,我需要每天早上6点进行增量备份。 我需要复制前一天生成的所有文件,并将它们放在包含今天日期的文件夹中。 所需要的是,在上一次备份之后生成的文件只能被复制[即,昨天备份的最后一个文件之后的序列的文件名]。 我尝试了xcopy,但它没有提供任何基于修改时间复制文件的工具。 我需要为此编写批处理脚本,请帮帮我!

2 个答案:

答案 0 :(得分:1)

xcopy提供了基于Archive属性复制文件的方法。您可能需要的选项是/M,它只复制具有Archive属性集的文件,并重置该属性。它有点依赖于设置的Archive属性,但Windows在创建或修改文件时默认(我认为)这样做。

例如(垃圾示例,但仍然是一个例子):

C:\tmp>echo hello > out.txt

C:\tmp>xcopy /M *.* ..
C:out.txt
1 File(s) copied

C:\tmp>xcopy /M *.* ..
0 File(s) copied

C:\tmp>echo hello > out2.txt

C:\tmp>xcopy /M *.* ..
C:out2.txt
1 File(s) copied

仅复制自上次复制以来新/修改的文件。

或者,根据您的Windows版本,您可以查看功能更强大(因此更令人困惑)的robocopy

答案 1 :(得分:0)

除非数据库已关闭,否则如果尝试备份磁盘上的原始文件,则可能会出现数据不一致问题。

备份所有内容的真正好参考是O'Reilly标题:Backup & Recovery

每个数据库都有自己的方法,在数据库处于活动状态时运行备份。 Here's Oracle's page.