解决上面案例繁琐的操作问题,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服务*/

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

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

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

代码如下复制代码 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:


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

 

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

net Start SQLAgent$SQL2005DE1  /*启动实例SQL2005DE1中的SQLAgent服务*/

net Stop SQLAgent$SQL2005DE1  /*停止实例SQL2005DE1中的SQLAgent服务*/

 

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

威尼斯登录首页 1威尼斯登录首页 2View Code

@echo off
:a
echo 本机的实例列表:
echo ---------------------------
echo     1    PC143SQL2005DE1
echo     2    PC143SQL2005DE2
echo     3    PC143SQL2005DE3
echo     4    PC143SQL2005DE4
echo     5    PC143SQL2005DE5
echo     6    PC143SQL2005DE6
echo     7    PC143SQL2005DE7
echo     8    PC143SQL2005DE8
echo     9    PC143SQL2005DE9
echo     10    PC143SQL2005DE10
echo ---------------------------
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 S1
if %var1% ==2 if %var2% ==1 goto S2
if %var1% ==3 if %var2% ==1 goto S3
if %var1% ==4 if %var2% ==1 goto S4
if %var1% ==5 if %var2% ==1 goto S5
if %var1% ==6 if %var2% ==1 goto S6
if %var1% ==7 if %var2% ==1 goto S7
if %var1% ==8 if %var2% ==1 goto S8
if %var1% ==9 if %var2% ==1 goto S9
if %var1% ==10 if %var2% ==1 goto S10
if %var1% ==1 if %var2% ==0 goto T1
if %var1% ==2 if %var2% ==0 goto T2
if %var1% ==3 if %var2% ==0 goto T3
if %var1% ==4 if %var2% ==0 goto T4
if %var1% ==5 if %var2% ==0 goto T5
if %var1% ==6 if %var2% ==0 goto T6
if %var1% ==7 if %var2% ==0 goto T7
if %var1% ==8 if %var2% ==0 goto T8
if %var1% ==9 if %var2% ==0 goto T9
if %var1% ==10 if %var2% ==0 goto T10
echo.
cls
goto a:
echo.
:S1
net Start SQLAgent$SQL2005DE1 /Y
net Start msftesql$SQL2005DE1 /Y
goto EndApp
echo.
:S2
net Start SQLAgent$SQL2005DE2 /Y 
net Start msftesql$SQL2005DE2 /Y
goto EndApp
echo.
:S3
net Start SQLAgent$SQL2005DE3 /Y
net Start msftesql$SQL2005DE3 /Y
goto EndApp
echo.
:S4
net Start SQLAgent$SQL2005DE4 /Y 
net Start msftesql$SQL2005DE4 /Y
goto EndApp
echo.
:S5
net Start SQLAgent$SQL2005DE5 /Y 
net Start msftesql$SQL2005DE5 /Y 
goto EndApp
echo.
:S6
net Start SQLAgent$SQL2005DE6 /Y 
net Start msftesql$SQL2005DE6 /Y 
goto EndApp
echo.
:S7
net Start SQLAgent$SQL2005DE7 /Y 
net Start msftesql$SQL2005DE7 /Y 
goto EndApp
echo.
:S8
net Start SQLAgent$SQL2005DE8 /Y 
net Start msftesql$SQL2005DE8 /Y 
goto EndApp
echo.
:S9
net Start SQLAgent$SQL2005DE9 /Y 
net Start msftesql$SQL2005DE9 /Y 
goto EndApp
echo.
:S10
net Start SQLAgent$SQL2005DE10 /Y 
net Start msftesql$SQL2005DE10 /Y 
goto EndApp
echo.
:T1
威尼斯登录首页,net Stop MSSQL$SQL2005DE1 /Y
net Stop msftesql$SQL2005DE1 /Y
goto EndApp
echo.
:T2
net Stop MSSQL$SQL2005DE2 /Y 
net Stop msftesql$SQL2005DE2 /Y
goto EndApp
echo.
:T3
net Stop MSSQL$SQL2005DE3 /Y
net Stop msftesql$SQL2005DE3 /Y
goto EndApp
echo.
:T4
net Stop MSSQL$SQL2005DE4 /Y 
net Stop msftesql$SQL2005DE4 /Y
goto EndApp
echo.
:T5
net Stop MSSQL$SQL2005DE5 /Y 
net Stop msftesql$SQL2005DE5 /Y
goto EndApp
:T6
net Stop MSSQL$SQL2005DE6 /Y 
net Stop msftesql$SQL2005DE6 /Y
goto EndApp
:T7
net Stop MSSQL$SQL2005DE7 /Y 
net Stop msftesql$SQL2005DE7 /Y
goto EndApp
:T8
net Stop MSSQL$SQL2005DE8 /Y 
net Stop msftesql$SQL2005DE8 /Y
goto EndApp
:T9
net Stop MSSQL$SQL2005DE9 /Y 
net Stop msftesql$SQL2005DE9 /Y
goto EndApp
:T10
net Stop MSSQL$SQL2005DE10 /Y 
net Stop msftesql$SQL2005DE10 /Y
goto EndApp
:EndApp
Set/p var3=是否继续操作:[y/n]
If %var3% == y goto a:

 

 

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

威尼斯登录首页 3

 

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

 

威尼斯登录首页 4

 

 

小结


 

      上面的批处理脚本,虽然代码看似很长,其实格式很简单,熟悉Windows批处理脚本的朋友,一定能简化它。启动或停止实例的服务,还可以使用别的后台脚本语言实现,如Windows PowerShell,或Python。无论使用哪一种,最终目的是要解决文章开头的两个案例问题。写批处理脚本,能让我们少敲次键盘,少按几次鼠标。通过简单的脚本代码实现,代替一些繁琐笨拙的操作,久而久之,会发觉它们能为我们节省了不少的时间,提高了工作效率。

本文由威尼斯在线注册平台发布于热门新闻,转载请注明出处:解决上面案例繁琐的操作问题,Server实例的服务

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文