关闭

DOS批处理实现SQLServer2000数据库自动备份,启停

2747人阅读 评论(0) 收藏 举报

1 制作批处理文件 将下面的源代码保存为(文件名.bat),标注为蓝色的需要根据个人环境来改变 1.::文件名:SQLServer2000数据库自动备份.bat 2.::作者:Feng 创建日期:2008-11-27 3.::功能:将数据库备份导出到以当前日期和时间命名的文件中,并保存到该月的文件夹下。 4.::注意:脚本在windows 2003中文版操作系统下测试可用,其他环境下请先测试是否可用。 5.::测试:在运行前,请先在DOS命令行中键入echo %date%%time%,查看日期格式,如果是“yyyy-mm-dd 星期N 时:分:秒.厘秒”,例如“2008-11-26 星期三08:30:43.90”,则可用 6.7.::--------------------------设置变量 8.9.::服务器名 10.@set ServerName=. 11.12.::登陆用户名 13.@set LoginUser=sa 14.15.::登陆密码 16.@set LoginPwd=sa 17.18.::数据库名 19.@set DataBaseName=backupBasedata 20.21.::ISQL的路径,这个需要配置到系统环境变量中去(我的电脑属性-高级-环境变量-系统环境变量-path值后面添加sql工具的路径,如C:/Program Files/Microsoft SQL Server/80/Tools/BINN) 22.::@set ISQLPath=C:/Program Files/Microsoft SQL Server/80/Tools/Binn 23.24.::设置保存的绝对路径 25.@set SavePath=G:/11 26.27.::根据当前的日期时间,生成备份的文件名。格式可以自己改 28.@set FileName=bak-[%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2%.%time:~9,2%]-bak.bak 29.30.::生成当月的文件夹名 31.@set DirName=%date:~0,7% 32.33.::备份数据库语句 34.@set ExecSQL="backup database %DataBaseName% to disk='%SavePath%/%DirName%/%FileName%'"35.36.::-------------------------创建文件夹 37.38.::每月1号创建新的文件夹 39.@if %date:~8,2%==01 (md %SavePath%/%DirName%) 40.41.::如果没有本月文件夹(初次运行时如果不是1号),则创建本月文件夹 42.@if not exist %SavePath%/%DirName% (md %SavePath%/%DirName%) 43.44.::-------------------------备份数据 45.46.::开始执行导出 47.@echo 开始备份数据 48.isql -U %LoginUser% -P %LoginPwd% -S %ServerName% -d %DataBaseName% -Q %ExecSQL% 49.50.::-------------------------完成备份 51.52.@echo 数据备份成功 53.54.::如果需要让客户确认,请去掉下面代码前面的::注释符。 55.::@pause 2 添加windows计划任务 控制面板--任务计划--添加任务计划 定期执行这个批处理文件 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/uFeng/archive/2008/11/26/3382038.aspx

 

-------------------------------------------------------------------------------------------------------------

由于机器上装了SQL Server2005,导致机器开机变慢,没办法只能让SQL Server (MSSQLSERVER)
服务默认不启动。但是每次要使用SQL Server时就必须从控制面板-管理工具-服务里面把它启动起来,比较麻烦了,呵呵。
  所以想到从DOS下面启动和关闭SQL Server (MSSQLSERVER),在运行里面执行一下就可以了,命令代码如下:
  启动:net start mssqlserver
  停止:net stop mssqlserver

  后来想着更方便一点,就写了个bat命令如下,可以比较方便的启动停止SQL Server (MSSQLSERVER)了。输入1回车,就启动服务;输入2 回车,就关闭服务

@ECHO OFF
set /p var=操作[1:启动 , 2:停止]:
if %var%==1 goto start
if %var%==2 goto stop

:start
  net start mssqlserver
  goto end
 
:stop
  net stop mssqlserver
  goto end
:end

-------------------------------------------------------------------------------------------------------------

 

--1.数据库备份脚本sqlserverbackup.sql

 

-- SQLServer2000数据库系统清理用户数据库日志和备份用户数据库数据脚本

 

declare@dumpfilevarchar(50)

declare@msgvarchar(70)

  select @dumpfile='d:/backup/north'+datename(dw,getdate())+'.bak'

  select @msg=convert(char(26),getdate(),9)+'-----正在清理日志......'

  print @msg

backuptran northwindwith truncate_only

if(@@ERROR<> 0)

begin

  select @msg=convert(char(26),getdate(),9)+'-----清理日志失败或出现异常......'

  print @msg

end

else

begin

  select @msg=convert(char(26),getdate(),9)+'-----清理日志完毕......'

  print @msg

end

  select @msg=convert(char(26),getdate(),9)+'-----开始备份northwind数据库.....'

  print @msg

backupdatabase northwindtodisk=@dumpfile

if(@@ERROR<> 0)

begin

  select @msg=convert(char(26),getdate(),9)+'-----备份数据失败或出现异常'

  print @msg

end

else

begin

  select @msg=convert(char(26),getdate(),9)+'-----数据库备份完毕'

  print @msg

end

 

 

@net start "mssqlserver"

@isql-Usa-Psa-i d:/backup/sqlserverbackup.sql-o d:/backup/sqlserverbackup.out

@echo ……正在备份中……

 

 

-----------------------------------------------------------------------------------------------------

use master restore database *** from disk =' " + ls_path + " ' with replace

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7790次
    • 积分:124
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章存档