• 技术文章 >数据库 >mysql教程

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

    2016-06-07 17:48:19原创532

    提供一个方便网站管理员用的程序 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的批处理文件“Start&StopSQLServer.bat”:

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

    SQL2005DE4:

    image

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

    image

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp 2005 goto SQL echo
    上一篇:SQL Server ntext、text 和 image 下一篇:sql ISNUMERIC 判断是否是数值类型
    PHP编程就业班

    相关文章推荐

    • 超详细汇总mysql优化实践技巧• MySQL面试问答集锦(总结分享)• mysql select语句中or的用法是什么• 浅析MySQL中的事务隔离级别,聊聊其实现原理• 一起分析MySQL的binlog怎么恢复数据

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网