您现在的位置是:主页 > 数据库技术 > 数据库技术

如何获取Exchange中的数据库名称

IDCBT2022-01-10服务器技术人已围观

简介这期内容当中小编将会给大家带来有关如何获取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中的数据库名称了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注IDCBT数据库频道。

标签:

很赞哦! ()

本栏推荐