900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > DOS批处理实现SQLServer2000数据库自动备份 启停

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

时间:2019-01-21 05:24:16

相关推荐

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

1 制作批处理文件 将下面的源代码保存为(文件名.bat),标注为蓝色的需要根据个人环境来改变 1.::文件名:SQLServer2000数据库自动备份.bat 2.::作者:Feng 创建日期:-11-27 3.::功能:将数据库备份导出到以当前日期和时间命名的文件中,并保存到该月的文件夹下。 4.::注意:脚本在windows 中文版操作系统下测试可用,其他环境下请先测试是否可用。 5.::测试:在运行前,请先在DOS命令行中键入echo %date%%time%,查看日期格式,如果是“yyyy-mm-dd 星期N 时:分:秒.厘秒”,例如“-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博客,转载请标明出处:/uFeng/archive//11/26/3382038.aspx

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

由于机器上装了SQL Server,导致机器开机变慢,没办法只能让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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。