获取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

}

时间: 2024-10-19 07:52:45

获取Exchange中所以数据库名称-数据库EDB大小-用户数量的相关文章

全局数据库名称.数据库名称.SID是什么关系?

关于数据库名(db_name).实例名(instance_name).ORACLE_SID 最近因看到论坛有人问起这方面的东西,将自己的理解加上查阅相关资料整理如下,如果不全或不当的地方,望指正并补全它. 数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).

Lua获取表中字段的名称

假设有下面这段代码 local t = { a = 1, b = { x = 1, y = 2} } 我传给你一个table, 想要知道这个table都有哪些字段,但是又不能直接获取,这时可以使用下面这个方法 for k, v in pairs (t) do print(tostring(k), v) end 可以看到, 把k用tostring函数转成字段串形式就OK了 但是我们还可以看到,当table中嵌套table的时候,嵌套的table无法打印出来,对于这种情况,难道就没有办法了吗?当然不

C# .net中获取台式电脑中串口设备的名称

1.情境: 做项目的时候要打开串口然后进行一些库函数的调用来操作目标板.串口使用的是usb转串口,板子插进拔出的,每次都使用不一样的usb口,debug的时候懒得每次改com口,又不想在UI上加上一个选择 com口的combox,于是就使用了下面这个方法. 2.环境: win7 64.vs2010 3.目标: 获取下图的设备到底使用的是com几. 4.source codery> 1 /// <summary> 2 /// Get the target com num. 3 /// &l

获取DLL中的方法名称

  OpenFileDialog obj = new OpenFileDialog(); if (obj.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Assembly ass = Assembly.LoadFrom(obj.FileName); foreach(var type in ass.GetTypes()) { MethodInfo[] members = type.GetMethods(BindingFlags.Pub

获取数据库中指定类型的数据库名称

/// <summary> /// 获取数据库名称 /// </summary> /// <param name="Account">帐套号</param> /// <returns></returns> public static string GetDBName(string Account) { StringBuilder strSql = new StringBuilder(); strSql.Append

三大数据库如何获取表中的第m条到第n条记录(n大于m)

数据库获取表中的第m条到第n条记录(n>m) 1.oracle数据库:(注:tableName.id指的是tableName的主键) select * from (select tableName.*,rownum as con from tableName where rownum <= m order by tableName.id desc) where con >= n; 2.SQLServer数据库:(注:tableName.id指的是tableName的主键) 实现原理解释:

Hibernate数据库配置文件中数据库名称错误问题

之前碰见一个项目部署在武汉,又部署在南京.由于是配合别人做的,数据库的搭建由别人完成,我们只是负责数据库中的几个表的数据处理.以前的数据库名称是projectwh,部署南京时,开始也是使用的projectwh的名称,后来对方重新创建了一个数据库projectnj(projectwh没有删除),我们对应的将Hibernate配置文件中的url中的数据库名称修改了成projectnj,但是发现存取操作的目标仍然会是projectwh中的表格. 一般想来Hibernate配置文件中应该只有url跟数据

MySQL 中的数据库名称、数据表名称、字段名称

如何查询Oracle,Sql Server,MySQL 中的数据库名称.数据表名称.字段名称 分类: Database2012-09-24 22:16 7034人阅读 评论(0) 收藏 举报 数据库sql serveroraclemysqltableobject 目录(?)[+] 在开发项目的时候有个功能需要查看数据库中有哪些表,以及每个表有哪些字段,在网上查看了一下,现在分享给大家. Oracle: 查询数据表(Tables)名称:select Table_Name, Tablespace_N

在SQL中修改数据库名称

假设SQL Server 2008中有个数据库test,现在要将其改名为zhy步骤:(1) 分离数据库:打开management studio,找到test数据库-->右键-->任务-->分离(2) 改名:然后到数据库物理路径(例如C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA)下找到test.mdf和test_log.ldf,分别改名为zhy.mdf.zhy_log.ldf(3) 附加数据库:打开