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

SQLserver数据库巡检脚本

SQL Server数据库巡检脚本的示例:

#!/bin/bash# 设置SQL Server登录凭证
SQL_USER="your_username"
SQL_PASSWORD="your_password"# 设置巡检结果输出文件路径
OUTPUT_FILE="/path/to/output.log"# 获取SQL Server版本信息
sql_version=$(sqlcmd -S localhost -U $SQL_USER -P $SQL_PASSWORD -Q "SELECT @@VERSION;" | grep -o 'Microsoft SQL Server.*')# 获取数据库列表
databases=$(sqlcmd -S localhost -U $SQL_USER -P $SQL_PASSWORD -Q "SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');")# 巡检开始时间
start_time=$(date +"%Y-%m-%d %H:%M:%S")# 输出巡检结果到文件
echo "SQL Server Database Inspection Report" > $OUTPUT_FILE
echo "Start Time: $start_time" >> $OUTPUT_FILE
echo "SQL Server Version: $sql_version" >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE# 遍历数据库列表进行巡检
for db in $databases
doecho "Checking database: $db"echo "===================================" >> $OUTPUT_FILEecho "Database: $db" >> $OUTPUT_FILE# 获取数据库大小size_info=$(sqlcmd -S localhost -U $SQL_USER -P $SQL_PASSWORD -Q "SELECT DB_NAME() AS DatabaseName, CONVERT(VARCHAR,SUM(size*8)/1024/1024)+' MB' AS Size FROM sys.master_files WHERE type = 0 AND DB_NAME() = '$db' GROUP BY DB_NAME();")echo "Database Size:" >> $OUTPUT_FILEecho "$size_info" >> $OUTPUT_FILE# 获取数据库日志文件大小log_size_info=$(sqlcmd -S localhost -U $SQL_USER -P $SQL_PASSWORD -Q "SELECT DB_NAME() AS DatabaseName, CONVERT(VARCHAR,SUM(size*8)/1024/1024)+' MB' AS Size FROM sys.master_files WHERE type = 1 AND DB_NAME() = '$db' GROUP BY DB_NAME();")echo "Log File Size:" >> $OUTPUT_FILEecho "$log_size_info" >> $OUTPUT_FILE# 获取数据库备份信息backup_info=$(sqlcmd -S localhost -U $SQL_USER -P $SQL_PASSWORD -Q "EXEC sp_msforeachdb 'USE [?]; SELECT DB_NAME() AS DatabaseName, MAX(backup_start_date) AS LastBackup FROM msdb.dbo.backupset WHERE type = ''D'' AND database_name = ''?'' GROUP BY DB_NAME();'")echo "Last Backup:" >> $OUTPUT_FILEecho "$backup_info" >> $OUTPUT_FILEecho "===================================" >> $OUTPUT_FILEecho "" >> $OUTPUT_FILE
done# 巡检结束时间
end_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "End Time: $end_time" >> $OUTPUT_FILEecho "Database inspection completed. Please check the output file: $OUTPUT_FILE"

请根据需要修改 SQL_USERSQL_PASSWORDOUTPUT_FILE 变量为你的SQL Server登录凭证和输出文件路径。运行脚本后,将会生成一个巡检报告文件,其中包含了SQL Server版本、每个数据库的大小、日志文件大小和最近的备份日期等信息。

这只是一个基本的示例脚本,你可以根据具体需求进行扩展和定制,添加更多的巡检项和检查规则。

http://www.lryc.cn/news/108013.html

相关文章:

  • Go Ethereum源码学习笔记 001 Geth Start
  • idea如何加快创建Maven项目的速度
  • 软件外包开发的GO开发框架
  • oracle会话打满
  • VSCode自定义闪烁光标
  • 复亚智能打造全新云平台:让无人机任务管理更智能、更简单
  • 编程导航第六关——白银挑战
  • 743. 网络延迟时间
  • Kubernetes高可用集群二进制部署(四)部署kubectl和kube-controller-manager、kube-scheduler
  • 在CSDN学Golang场景化解决方案(微服务架构设计)
  • centos7 yum安装mysql5.7
  • 安防视频汇聚平台EasyCVR视频广场面包屑侧边栏支持拖拽操作
  • 爬虫007_python中的输出以及格式化输出_以及输入---python工作笔记025
  • 485modbus转profinet网关连三菱变频器modbus通讯触摸屏监控
  • 话费充值接口文档
  • windows系统的IP、路由、网关、内外网同时访问路由以及修改系统文件hosts的配置
  • Kubespray-offline v2.21.0-1 下载 Kubespray v2.22.1 离线部署 kubernetes v1.25.6
  • 代码随想录训练营Day59单调栈Part01|739. 每日温度|496.下一个更大元素①
  • RPMsg-Lite上手
  • 基于YOLOv8 的 多边形区域内目标检测,跟踪,计数
  • STSP中用于记录节点和旅行回路的四种数据结构
  • 【Spring】AOP切点表达式
  • 设计模式再探——代理模式
  • MySQL日志——查询日志
  • Java版本工程行业管理系统源码-专业的工程管理软件-提供一站式服务 em
  • pytorch的CrossEntropyLoss交叉熵损失函数默认是平均值
  • 【力扣】206. 反转链表 <链表指针>
  • Java包装类(自动拆装箱)
  • 使用Golang反射技术实现一套有默认值的配置解析库
  • 数据安全能力框架模型-详细解读(二)