PowerShell:30行代码轻松实现SQL Server数据库容量监控
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本文介绍如何用PowerShell脚本实现SQL Server数据库容量监控闲话就不多说,直入主题一、建表为每台服务器创建一个表,用于记录服务器各个数据库的容量,以服务器名作为表名。CREATE TA
千家信息网最后更新 2025年02月05日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安全错误
数据库的锁怎样保障安全
软件开发师能叫程序员吗
长春测控labview软件开发
通讯网络技术领域
团日活动网络安全主题
手机游戏服务器怎么看
朔州网络技术调试
plc怎么存储几个数据库
游戏网络技术公司招聘
服务器是机柜吗
普洱哪有定制软件开发
同步linux服务器时间
十四五规划网络安全如何做
什么软件开发进阶好
问卷星网络技术
通信技术和网络技术的区别
scum服务器搭建教程
梅州软件开发生产商
东莞海鲜冷库软件开发
北京极墨舞网络技术
服务器远程用户
朔州网络技术调试
学校网络安全培训心得体会
泰坦之旅服务器怎么搭建
小学网络安全文明百度文件
政府网络安全规划与设计方案
查看数据库表空间大小
软件开发自学app推荐
社区网络安全工作领导小组
技术人员网络安全试题
赛维思网络技术有限公司