启动/停止SQL Server服务的批处理脚本

提供一个方便网站管理员用的程序 SQL Server
启动/停止服务的批处理脚本代码,有需要的朋友可以参考一下。

案例一:在一个Windows操作系统中,安装有10个SQL
Server实例,每一个实例存在大约120个数据库教程。现在要同时启动10个实例的服务(SQL
Server SQL Server Agent SQL Server FullText Search)。通过SQL Server
Configuration
Manager,需要一个实例,一个服务的一一启动。那是多么繁琐、笨拙的操作。

案例二:在案例一的场景,启动了全部的实例。不久,就发现程序运行缓慢,即使在Microsoft
SQL Server Management
Studio(MSMS)管理器查询数据,都有如蜗牛爬树。这时候,需要关闭一些暂时不用的SQL
Server实例的服务。等需要的时候再启动。一些时候,可能会碰到经常要关闭这个实例的服务,启动另外实例的服务,以便解决Windows系统资源紧张的问题。

解决上面案例繁琐的操作问题,可以考虑通过Net命令,来启动或停止各个SQLServer服务,如:

代码如下复制代码 net Start SQLAgent$SQL2005DE1
/*启动实例SQL2005DE1中的SQLAgent服务*/net Stop SQLAgent$SQL2005DE1
/*停止实例SQL2005DE1中的SQLAgent服务*/

根据Net命令,可以通过编写一个批处理脚本实现,启动各个实例的各服务。Copy下面的代码,存储为后缀名为Bat的批处理文件StartStopSQLServer.bat:

代码如下复制代码 View Code @echo off:aecho 本机的实例列表:echo
—————————echo 1 PC143SQL2005DE1echo 2
PC143SQL2005DE2echo 3 PC143SQL2005DE3echo 4 PC143SQL2005DE4echo 5
PC143SQL2005DE5echo 6 PC143SQL2005DE6echo 7 PC143SQL2005DE7echo 8
PC143SQL2005DE8echo 9 PC143SQL2005DE9echo 10 PC143SQL2005DE10echo
—————————echo 操作动作:echo 1 启动服务 echo 0
停止服务echo —————————echo.Set/p
var2=请输入操作动作:[1/0]Set/p
var1=请输入实例编号:[澳门新葡亰手机版,1/2/3/4/5/6/7/8/9/10]if %var1% ==1 if %var2% ==1
goto S1if %var1% ==2 if %var2% ==1 goto S2if %var1% ==3 if %var2% ==1
goto S3if %var1% ==4 if %var2% ==1 goto S4if %var1% ==5 if %var2% ==1
goto S5if %var1% ==6 if %var2% ==1 goto S6if %var1% ==7 if %var2% ==1
goto S7if %var1% ==8 if %var2% ==1 goto S8if %var1% ==9 if %var2% ==1
goto S9if %var1% ==10 if %var2% ==1 goto S10if %var1% ==1 if %var2% ==0
goto T1if %var1% ==2 if %var2% ==0 goto T2if %var1% ==3 if %var2% ==0
goto T3if %var1% ==4 if %var2% ==0 goto T4if %var1% ==5 if %var2% ==0
goto T5if %var1% ==6 if %var2% ==0 goto T6if %var1% ==7 if %var2% ==0
goto T7if %var1% ==8 if %var2% ==0 goto T8if %var1% ==9 if %var2% ==0
goto T9if %var1% ==10 if %var2% ==0 goto T10echo.clsgoto a:echo.:S1net
Start SQLAgent$SQL2005DE1 /Ynet Start msftesql$SQL2005DE1 /Ygoto
EndAppecho.:S2net Start SQLAgent$SQL2005DE2 /Y net Start
msftesql$SQL2005DE2 /Ygoto EndAppecho.:S3net Start SQLAgent$SQL2005DE3
/Ynet Start msftesql$SQL2005DE3 /Ygoto EndAppecho.:S4net Start
SQLAgent$SQL2005DE4 /Y net Start msftesql$SQL2005DE4 /Ygoto
EndAppecho.:S5net Start SQLAgent$SQL2005DE5 /Y net Start
msftesql$SQL2005DE5 /Y goto EndAppecho.:S6net Start SQLAgent$SQL2005DE6
/Y net Start msftesql$SQL2005DE6 /Y goto EndAppecho.:S7net Start
SQLAgent$SQL2005DE7 /Y net Start msftesql$SQL2005DE7 /Y goto
EndAppecho.:S8net Start SQLAgent$SQL2005DE8 /Y net Start
msftesql$SQL2005DE8 /Y goto EndAppecho.:S9net Start SQLAgent$SQL2005DE9
/Y net Start msftesql$SQL2005DE9 /Y goto EndAppecho.:S10net Start
SQLAgent$SQL2005DE10 /Y net Start msftesql$SQL2005DE10 /Y goto
EndAppecho.:T1net Stop MSSQL$SQL2005DE1 /Ynet Stop msftesql$SQL2005DE1
/Ygoto EndAppecho.:T2net Stop MSSQL$SQL2005DE2 /Y net Stop
msftesql$SQL2005DE2 /Ygoto EndAppecho.:T3net Stop MSSQL$SQL2005DE3 /Ynet
Stop msftesql$SQL2005DE3 /Ygoto EndAppecho.:T4net Stop MSSQL$SQL2005DE4
/Y net Stop msftesql$SQL2005DE4 /Ygoto EndAppecho.:T5net Stop
MSSQL$SQL2005DE5 /Y net Stop msftesql$SQL2005DE5 /Ygoto EndApp:T6net
Stop MSSQL$SQL2005DE6 /Y net Stop msftesql$SQL2005DE6 /Ygoto
EndApp:T7net Stop MSSQL$SQL2005DE7 /Y net Stop msftesql$SQL2005DE7
/Ygoto EndApp:T8net Stop MSSQL$SQL2005DE8 /Y net Stop
msftesql$SQL2005DE8 /Ygoto EndApp:T9net Stop MSSQL$SQL2005DE9 /Y net
Stop msftesql$SQL2005DE9 /Ygoto EndApp:T10net Stop MSSQL$SQL2005DE10 /Y
net Stop msftesql$SQL2005DE10 /Ygoto EndApp:EndAppSet/p
var3=是否继续操作:[y/n]If %var3% == y goto a:

这里演示了PC143上的10个SQL
Server实例启动、停止的批处理脚本。下面来运行这个脚本,启动PC143上其中一个实例服务PC143SQL2005DE4:

SQL2005DE4:

关闭实例服务,类似启动实例服务,如: