PowerShell:30行代码轻松实现SQL Server数据库容量监控
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文介绍如何用PowerShell脚本实现SQL Server数据库容量监控闲话就不多说,直入主题一、建表为每台服务器创建一个表,用于记录服务器各个数据库的容量,以服务器名作为表名。CREATE TA
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
瑰夏咖啡
广州百单互联网科技有限公司
涨乐互联网科技
港股互联网科技股
互联网 科技公司
互联网 的科技创新
互联网科技创新企业排名
互联网科技产品
华服互联网科技官网
佳云科技和互联网广告
彤创互联网科技有限公司
注册互联网科技公司经营范围大全
广西互联网科技孵化中心
济南有互联网科技公司吗
江苏苏星互联网科技有限公司
2021世界互联网领先科技成果发布
云鲸互联网络科技有限公司
互联网高科技行业有哪些企业
互联网时代高科技布局
互联网对科技影响
银优互联网科技有限公司
上海喔噻互联网科技
睿民互联网科技
互联网科技网站
南山科技园互联网公司有哪些
互联网金融科技名词解释
银行科技岗属于互联网吗
上海乐五互联网科技有限公司
互联网科技手机排行榜
银川新华互联网科技学校是国营吗