獲取Exchange中所以數據庫名稱-數據庫EDB大小-用戶數量
在客戶環境梳理架構發現,有一些exchange 2013後端服務器負載很高,一部分原因是數據庫內用戶的活躍度很高,郵箱使用率很高,另部分原因是版本為CU10內容索引的noderunner服務會占用比較大的開銷,想進行一些優化,將一些負載較高的BE後端數據庫用戶遷移到其他負載較低的後端BE去,但是怎麽遷移,遷移到哪一個負載低的數據庫就比較尷尬,經過各種谷歌搜索整理了一個腳本可以幫助做這個事。
當時exchange建設時為每個數據庫都分布了大概500個用戶,但每一個郵箱用戶的使用情況都是不一樣的,管理員也沒有辦法進行控制,因為是用戶層面的行為,就會造成每個BE後端服務器的負載不均衡。
通過一個powershell腳本能夠獲得到每個數據庫的名字、大小以及用戶數量並且直接輸出成csv比較友好的界面,可以幫助我們進行數據性能的優化
將腳本分享出來希望大家有用,適用於exchange 2013環境,其他版本請自行測試
輸出信息如下:
Add-PSSnapin microsoft.exchange*
add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
#$MailboxDatabases=Get-MailboxDatabase -Status | select Name,DatabaseSize
$dbs = Get-MailboxDatabase -Status| Where {$_.Recovery -ne $true}
$dbs = $dbs | sort-object name
$output=‘C:\databaseSize.csv‘
$title="databasename,Servername,databasesize,count"
$title>>$output
foreach ($db in $dbs)
{
#Get the mailbox count for the database
$mailboxes = Get-Mailbox -database $db -IgnoreDefaultScope -Resultsize Unlimited -erroraction silentlycontinue
$mbcount = $mailboxes.count
$dbsize=$db| select Server,DatabaseSize
#$databaseSize=$dbsize.DatabaseSize.ToString().Split("GB")[0]
$databaseSize=$dbsize.DatabaseSize.ToBytes()/1024/1024/1024
$message="$($db.name),$($dbsize.Server),$databaseSize,$($mailboxes.count)"
$message>>$output
}
本文出自 “追夢赤子心” 博客,請務必保留此出處http://zmczx.blog.51cto.com/7689019/1952956
獲取Exchange中所以數據庫名稱-數據庫EDB大小-用戶數量