日期:2014-05-18 浏览次数:20578 次
1 制作批处理文件 将下面的源代码保存为(文件名.bat),标注为蓝色的需要根据个人环境来改变 ::文件名:SQLServer2000数据库自动备份.bat ::作者:Feng 创建日期:2008-11-27 ::功能:将数据库备份导出到以当前日期和时间命名的文件中,并保存到该月的文件夹下。 ::注意:脚本在windows 2003中文版操作系统下测试可用,其他环境下请先测试是否可用。 ::测试:在运行前,请先在DOS命令行中键入echo %date%%time%,查看日期格式,如果是“yyyy-mm-dd 星期N 时:分:秒.厘秒”,例如“2008-11-26 星期三08:30:43.90”,则可用 ::--------------------------设置变量 ::服务器名 @set ServerName=. ::登陆用户名 @set LoginUser=sa ::登陆密码 @set LoginPwd=sa ::数据库名 @set DataBaseName=backupBasedata ::ISQL的路径,这个需要配置到系统环境变量中去(我的电脑属性-高级-环境变量-系统环境变量-path值后面添加sql工具的路径,如C:\Program Files\Microsoft SQL Server\80\Tools\BINN) ::@set ISQLPath=C:\Program Files\Microsoft SQL Server\80\Tools\Binn ::设置保存的绝对路径 @set SavePath=G:\11 ::根据当前的日期时间,生成备份的文件名。格式可以自己改 @set FileName=bak-[%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2%.%time:~9,2%]-bak.bak ::生成当月的文件夹名 @set DirName=%date:~0,7% ::备份数据库语句 @set ExecSQL="backup database %DataBaseName% to disk='%SavePath%\%DirName%\%FileName%'" ::-------------------------创建文件夹 ::每月1号创建新的文件夹 @if %date:~8,2%==01 (md %SavePath%\%DirName%) ::如果没有本月文件夹(初次运行时如果不是1号),则创建本月文件夹 @if not exist %SavePath%\%DirName% (md %SavePath%\%DirName%) ::-------------------------备份数据 ::开始执行导出 @echo 开始备份数据 isql -U %LoginUser% -P %LoginPwd% -S %ServerName% -d %DataBaseName% -Q %ExecSQL% ::-------------------------完成备份 @echo 数据备份成功 ::如果需要让客户确认,请去掉下面代码前面的::注释符。 ::@pause 2 添加windows计划任务 控制面板--任务计划--添加任务计划 定期执行这个批处理文件 或者手动双击执行该批处理文件,来实现数据库的备份
------解决方案--------------------
我承认我是被标题骗进来的
顺便说明一下 别把dos和命令行方式混淆,其实从2000开始就不存在dos了严格的说
如果脱离windows什么也别谈了,就copy xcopy等,参考楼上的
命令行下的操作方式就多了
------解决方案--------------------
为何不用sql job或维护计划进行备份呢,
一定要dos方式吗?
可以把备份命令写成存储过程,
然后再dos下用sqlcmd连进sql server,
然后执行 exec [存储过程名]
------解决方案--------------------
dos 方式那是 7.0以前的事情了,现在很少直接用命令行方式去运行这些东西,除非你是入侵者.
其实备份最好还是通过界面进行,当然也可以写语句由服务器处理或创建作业定时运行,但这与命令行方式可不是一回事.
------解决方案--------------------
我回去给你找 我有现成的代码 是成功的 不过今天忘带了
------解决方案--------------------
你直接在数据库里面写有时候会挂掉的 放在后台 有个专门的类的
------解决方案--------------------
还有还原的是吗