中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PowerShell:30行代碼輕松實現SQL Server數據庫容量監控

發布時間:2020-07-14 06:55:00 來源:網絡 閱讀:2024 作者:易語隨風去 欄目:關系型數據庫

本文介紹如何用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 $server
For($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 $MonitorServer
if($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
}
}
}



效果圖:

PowerShell:30行代碼輕松實現SQL Server數據庫容量監控



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

稷山县| 乌拉特后旗| 永福县| 安图县| 文昌市| 玉树县| 巴马| 大城县| 二手房| 彩票| 汉阴县| 江孜县| 邻水| 开封县| 东海县| 迁西县| 苗栗县| 常德市| 娱乐| 田东县| 淳化县| 麦盖提县| 贵溪市| 河南省| 崇义县| 镇赉县| 南川市| 上栗县| 抚松县| 台中县| 巧家县| 桂东县| 六安市| 且末县| 五指山市| 阳谷县| 汝南县| 富川| 新昌县| 蒲城县| 宝山区|