如何获取Exchange中的数据库名称
这期内容当中小编将会给大家带来有关如何获取Exchange中的数据库名称,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
在客户环境梳理架构发现,有一些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
}
上述就是小编为大家分享的如何获取Exchange中的数据库名称了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注蜗牛博客行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论