----------------------------------------------------------------------------
---- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
---- 转载务必注明原始出处 : http://blog.youkuaiyun.com/andkylee
---- 关键字: ASE 数据库 备份 自动 连续备份 删除旧备份
----------------------------------------------------------------------------
我们知道根据生产数据库的业务数据情况来安排备份的频率,比如:每月、每周、每日,有的甚至每小时备份一次。要备份sybase数据库,需要自己手动写命令。这样,下一次可能会覆盖上一次的备份文件。通过脚本在下一次备份时产生不同的备份文件名称就不会覆盖上一个备份文件了。这样,能够自动保留数据库的多个数据库备份文件,更有力的保障了数据库的安全。
将下面的脚本复制到记事本中,另存为bat格式。添加到windows的计划任务中,
============================================================================================
echo off
cls
:: 默认保留近7日来的数据库备份,可以把7改成自己想连续的天数
:: 其中d:/sybase/data为数据库备份地址,可以自己再次指定
:: master为默认备份的数据库名称,可以修改成其它用户数据库名称
set databak_path=d:/sybase/data
set databasename=master
echo dt=date()-7>%temp%/OldDate.vbs
echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)>>%temp%/OldDate.vbs
echo wscript.echo s>>%temp%/OldDate.vbs
for /f %%f in ('cscript /nologo %temp%/OldDate.vbs') do @set DelFlag=%%f
::删除七日前的数据库备份文件
if exist "%databak_path%/%databasename%_%DelFlag%.dump" del "%databak_path%/%databasename%_%DelFlag%.dump"
del %temp%/OldDate.vbs
if exist %temp%/dump_db.txt (del %temp%/dump_db.txt)
echo dump database %databasename% to "%databak_path%/%databasename%_%date:~0,10%.dump" >>%temp%/dump_db.txt
echo go >>%temp%/dump_db.txt
isql -Usa -P -Syour_servername <"%temp%/dump_db.txt" >>%databak_path%/dump_log.txt
del "%temp%/dump_db.txt"