在帐套管理中.有个自动备份,里面有个限量备份选项.如果限量备份选择了10的话,系统是怎么处理的.
A 是就备份数据库10次,到了10次之后就不备份了.
B 是备份10次数据库.第11次备份的时候就将第一次备份的文件给删除了,也就是说始终保持着最近的10次备份
C C 是就备份数据库10次,到了10次之后,还是继续备份
C是李总的回答. 那如果是这样的话. 又跟前面的 不限量备份有啥区别. 反正一个是不限量的备份. 一个是备份了10次.过会再继续备份.
帐套管理中的自动备份中的不限量备份和限量备份.
- 提问者: pc8848
- 等级:普通会员
- 时间:2012-09-24 21:22
- 悬赏:0
- 解决时间:2012-09-24 22:19
最佳答案
可以放一个批处理,删除5天之前的,SQL2000/2005是存在这样的BUG,限量无效。
复制以下代码,放在记事本中,另存为del.bat批处理:(DaysAgo=5指删除5天前的)
rem 指定待删除文件的存放路径
set SrcDir=.\
rem 指定天数
set DaysAgo=5
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (
set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
if "%%~ta" leq "%DstDate%" (
if exist "%%a" (
del /q "%%a"
)
)
)
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
exit
该批处理注意事项:
1. 一定要注意,不要放在重要目录下执行,不然全没了,不会进回收站
2. 一定要注意,要会把子目录中的也删除
3. 只能放在备份目录下
4. 要把这个批处理设为只读(就不会删除自已,也可以把一些不想删除的设置为只读,就不会被删除)
5. 定期运行就可以删除几天前的
复制以下代码,放在记事本中,另存为del.bat批处理:(DaysAgo=5指删除5天前的)
rem 指定待删除文件的存放路径
set SrcDir=.\
rem 指定天数
set DaysAgo=5
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate') do (
set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (
set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
if "%%~ta" leq "%DstDate%" (
if exist "%%a" (
del /q "%%a"
)
)
)
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
exit
该批处理注意事项:
1. 一定要注意,不要放在重要目录下执行,不然全没了,不会进回收站
2. 一定要注意,要会把子目录中的也删除
3. 只能放在备份目录下
4. 要把这个批处理设为只读(就不会删除自已,也可以把一些不想删除的设置为只读,就不会被删除)
5. 定期运行就可以删除几天前的
- 回答者:李祥
- 等级:问不倒翁
- 时间:2012-09-24 21:57
- 提问者对最佳回答的评论:
- 谢谢.原来是存在BUG.就用这个方法解决吧.
对最佳答案的评论 共 3 条
学习了。呵呵
- 评论者:wangze2005
还以为是会自动删除、保留10份的呢,这样不如用sql的维护计划。
- 评论者:bonchen
循环删除、循环备份才是正道!呵呵
- 评论者:bonchen
快到期问题