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