批处理自动备份mssql2000微软数据库
很早之前写的一个备份数据库的bat批处理,里面用到了isql.exe这个dos程序好像在mssql2000之后的版本就没有了(在2000版本中位于C:\Program Files\Microsoft SQL Server\80\Tools\Binn)。还用到一个freedisk程序用来计算剩余磁盘空间的。
执行该批处理后会判断d盘空间是否大于5GB,如果大于5GB会删除非当月的备份文件名(注意所有文件名必须是像2020010101012300这种以日期时间命名的文件才会按规则删除),然后调用isql.exe命令执行备份到backup.sql文件。因为这个批处理是很久之前写的,不保证现在还能用,也不保证程序可靠性,未充分测试前请勿用于生产环境!
@ECHO OFF echo 切换批处理运行路径为文件所处位置 echo cd /d %~dp0 del /s /q c:\tmp.txt echo 如果分区剩余容量小于5GB echo 将对本目录文件进行清理 echo 保留含以本年本月命名的文件 echo 如今天是2019年1月,则保留含201901的文件 echo 保留.bat .txt .exe .dll文件 freedisk /d d: 5GB|findstr "卷上没有指定的可用空间量" >>C:\tmp.txt findstr "D" C:\tmp.txt echo %errorlevel% if %errorlevel%==0 goto del if %errorlevel%==1 goto bak :del echo 空间不足,将进行删除操作 set year1=%date:~0,4% set day1=%date:~5,2% set delfile=%year1%%day1% @for /f "tokens=*" %%i in ('dir/b^|findstr /iv "%delfile% bak bat txt exe DLL .sql"') do @del "%%i" goto y :bak echo 空间足够,执行备份操作 echo %errorlevel% echo. del /s /q tmp.txt goto y :y echo 删除临时文件tmp.txt del /s /q c:\tmp.txt echo 正在备份... @echo off echo . 隐藏 set path=%path%;C:\Program Files\Microsoft SQL Server\80\Tools\Binn set path=C:\Users\Administrator\Desktop\数据库自动备份 echo 数据库备份开始 >> d:\任务计划完成记录.txt date /t >> d:\任务计划完成记录.txt time /t >> d:\任务计划完成记录.txt isql.exe -S 192.168.1.15 -U sa -P -i backup.sql echo 数据库备份完成 >> d:\任务计划完成记录.txt date /t >> d:\任务计划完成记录.txt time /t >> d:\任务计划完成记录.txt echo . echo . echo . 数据库备份完成 echo . echo . rem pause rem shutdown.exe -s -t 0 rem pause
基于互联网精神,在注明出处的前提下本站文章可自由转载!
本文链接:https://ranjuan.cn/bat-backup-mssql2000/
赞赏
微信赞赏支付宝赞赏
发表评论