PowerShell:30行代码轻松实现SQL Server数据库容量监控
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本文介绍如何用PowerShell脚本实现SQL Server数据库容量监控闲话就不多说,直入主题一、建表为每台服务器创建一个表,用于记录服务器各个数据库的容量,以服务器名作为表名。CREATE TA
千家信息网最后更新 2025年11月09日PowerShell:30行代码轻松实现SQL Server数据库容量监控
本文介绍如何用PowerShell脚本实现SQL Server数据库容量监控
闲话就不多说,直入主题
一、建表
为每台服务器创建一个表,用于记录服务器各个数据库的容量,以服务器名作为表名。
CREATE TABLE table_name([LOG_DATE] [varchar](20) NULL,[DB_NAME] [varchar](50) NULL,[TOTAL_SIZE_MB] [numeric](15, 2) NULL,[USE_SIZE_MB] [numeric](15, 2) NULL,[FREE_SIZE_MB] [numeric](15, 2) NULL,[DAILY_GROWTH_MB] [numeric](15, 2) NULL DEFAULT ((0)))
二、数据收集
要点:
1. 主要利用sp_msforeachdb、sp_spaceused循环获取各数据库容量数据,简化代码
2. today_use_size = total_szie - free_size
3. growth_szie = today_use_size - yesterday_use_size
4. chkservers.txt存放服务器名
5. 创建作业,每天定时执行(如需调整为每周、月执行,修改$yesterday=$today.adddays(-1)及作业频率即可)
$MonitorServer='' $servers=gc F:\DBA\chkservers.txt$today=Get-Date$log_date=$today.toString('yyyyMMdd')$yesterday=$today.adddays(-1)$compare_date=$yesterday.toString('yyyyMMdd')Foreach($server in $servers){if($server.length -gt 0){$results=invoke-sqlcmd "exec sp_msforeachdb 'if(db_id(''?'') not in(1,2,3,4)) begin exec [?]..sp_spaceused end'" -ServerInstance $serverFor($n=0;$n -lt $results.length;$n=$n+2){$db_name=$results[$n].database_name$db_total_size=$results[$n].database_size$db_free_size=$results[$n].'unallocated space'$total_size=$db_total_size.substring(0,$db_total_size.length-3)$free_size=$db_free_size.substring(0,$db_free_size.length-3)$today_use_size=$total_size-$free_size$count=invoke-sqlcmd "select count(1) as count from DBMonitor..$server where LOG_DATE='$compare_date' and DB_NAME='$db_name'" -ServerInstance $MonitorServerif($count.count -gt 0){$comp_results=invoke-sqlcmd "select MAX(USE_SIZE_MB) as USE_SIZE_MB from DBMonitor..$server where LOG_DATE='$compare_date' and DB_NAME='$db_name'" -ServerInstance $MonitorServer$yesterday_use_size=$comp_results.USE_SIZE_MB$growth_size=$today_use_size-$yesterday_use_size}else{$growth_size=0}invoke-sqlcmd "insert into DBMonitor..$server select '$log_date','$db_name',$total_size,$today_use_size,$free_size,$growth_size" -ServerInstance $MonitorServer}}}效果图:
数据
服务器
服务
容量
数据库
作业
代码
监控
名作
效果
效果图
脚本
要点
频率
循环
调整
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络服务器部署与管理
网络广播服务器
vc 显示数据库
主机和服务器工作站的关系
软件开发部考核办法
小班讨论 网络安全
sqlite dll数据库
第三届互联网大会科技成果
辽宁北斗卫星授时服务器云空间
软件开发名称
怎样下载股票数据库
数据库导入的方法
网络技术迭代性发展
5g网络技术招聘
中美网络安全博弈分析
H3C服务器管理口
个人云服务器家用搭建
与服务器连接失败
e5v3 可以用服务器内存条吗
无锡网络技术
国家网络安全空间战略有哪些任务
查看gerrit 数据库
昆明智能化软件开发市场价
net服务器搭建
网络安全事件2019
苏州专业软件开发定制公司
基因检测数据库无收录什么意思
zlhx网络安全加密系统
sp 关系数据库
山东系统软件开发费用