当前位置: 首页 > news >正文

【Windows】Win2008服务器SQL服务监控重启脚本

以下是一个用于监控并自动重启 SQL Server 服务的批处理脚本,适用于 Windows Server 2008 和 SQL Server 2012(默认实例):

@echo off
setlocal enabledelayedexpansion

:: 配置参数
set SERVICE_NAME=MSSQLSERVER
set LOG_FILE=C:\SQL_ServiceMonitor.log

:: 检查服务状态
sc query %SERVICE_NAME% | find "STATE" > nul
if %errorlevel% equ 0 (
    for /f "tokens=3 delims=: " %%A in ('sc query %SERVICE_NAME% ^| find "STATE"') do set "STATUS=%%A"
) else (
    echo [%date% %time%] 错误:服务 %SERVICE_NAME% 不存在 >> %LOG_FILE%
    exit /b 1
)

:: 记录状态
echo [%date% %time%] 检测服务 %SERVICE_NAME% 状态码: !STATUS! >> %LOG_FILE%

:: 判断是否需要重启
if not !STATUS! equ 4 (
    echo [%date% %time%] 服务未运行,尝试重启... >> %LOG_FILE%
    
    net stop %SERVICE_NAME% > nul 2>&1
    net start %SERVICE_NAME% > nul 2>&1
    
    :: 验证重启结果
    sc query %SERVICE_NAME% | find "STATE" | find "RUNNING" > nul
    if %errorlevel% equ 0 (
        echo [%date% %time%] 服务重启成功 >> %LOG_FILE%
    ) else (
        echo [%date% %time%] 错误:服务重启失败 >> %LOG_FILE%
    )
)

endlocal

使用说明:

  1. 保存脚本:将代码保存为 SQLServiceMonitor.bat,建议存放在服务器固定路径(如 C:\Scripts\)。

  2. 修改配置(按需):

    • SERVICE_NAME:若使用命名实例(如实例名为 SQL2012),改为 MSSQL$SQL2012
    • LOG_FILE:自定义日志文件路径。
  3. 计划任务配置

    • 打开“任务计划程序”,创建新任务。
    • 常规选项中勾选“不管用户是否登录都要运行”和“使用最高权限”。
    • 触发器:设置周期性执行(如每5分钟)。
    • 操作:启动程序选择保存的bat文件。
    • 条件:取消所有勾选以避免休眠时失效。
  4. 测试

    • 手动停止 SQL Server 服务,等待脚本自动重启并检查日志。

注意事项:

  • 需确保执行账户有权限管理服务(建议使用管理员账户)。
  • 若服务器启用了防火墙,需确保不影响服务操作。
  • 定期检查日志文件以确认监控状态。

此脚本会持续监测 SQL Server 服务状态,异常时自动重启并记录详细日志,便于后续维护。

http://www.dtcms.com/a/121827.html

相关文章:

  • golang gmp模型分析
  • 【Game】Powerful——Martial Arts Challenge(6)
  • 数据库实践题目:在线书店管理系统
  • 高性能服务开发利器:redis+lua
  • Spring 框架的核心基础:IoC 和 AOP
  • 【算法竞赛】回文字符串+思维模拟(蓝桥杯真题·回文字符串·代码清晰易懂)
  • 巧记英语四级单词 Unit3-上【晓艳老师版】
  • 【SpringCloud】从入门到精通(下)
  • TCP 与 UDP
  • Qt 开发时可以在函数内引用的头文件
  • 国网B接口协议调阅实时视频接口流程详解以及检索失败原因(电网B接口)
  • 蓝桥杯刷题总结 + 应赛技巧
  • MySQL表的增删查改(基础)
  • python学智能算法(九)|决策树深入理解
  • [前端]从人体结构看网页三要素:HTML、CSS 与 JavaScript
  • C#.NET模拟用户点击按钮button1.PerformClick自动化测试
  • 动手人形机器人(RL)
  • 去除Mysql表中的空格、回车、换行符和特殊字符
  • 淘宝API与小程序深度联动:商品详情页“一键转卖”功能开发
  • NO.83十六届蓝桥杯备战|动态规划-基础线性DP|台阶问题|最大子段和|传球游戏|乌龟棋(C++)
  • Elasticsearch 集群搭建
  • Vue3+Vite+TypeScript+Element Plus开发-10.多用户动态加载菜单
  • Hi Robot——大脑加强版的π0:基于「VLM的高层次推理+ VLA低层次任务执行」的复杂指令跟随及交互式反馈
  • Python标准库-copy
  • FairMOT复现过程中cython_bbox库问题
  • go游戏后端开发32:自摸杠处理逻辑
  • Elasticsearch中的基本全文搜索和过滤
  • Spring Boot应用中可能出现的Full GC问题
  • 滑动窗口(2)—最⼤连续1的个数III
  • git 查看某一文件夹下所有文件 修改记录