Exchange 2010 introduces a new feature that automatically load balance creation of new mailboxes across all available databases when a creation of a new mailbox account occurs. It’s no longer mandatory to specify what database mailbox should reside on as Exchange uses a mailbox provisioning agent to take the decision for you on what mailbox database the mailbox creation will be created on.
How is mailbox provisioning agent deciding?
Mailbox provisioning agent scans for all databases within the same Active Directory site when new mailbox request is created. The provisioning agent selects the database randomly for the new mailbox from the all available databases that are mounted and have database attribute “IsExcludedFromProvisioning” and “IsSuspendedFromProvisioning” set to $False . It´s important to know that mailbox provisioning agent does not take the current number of mailboxes in a database into account when it selects a target database, so let´s hope we see a more intelligent provision in the future.
To verify what mailbox databases are activated for automatic mailbox provisioning run the following EMS command:
Get-MailboxDatabase | ft Name,IsExcludedFromProvisioning,IsSuspendedFromProvisioning
In my case all mailbox databases are enabled for automatic mailbox provisioning and by default all new mailbox databases created using EMC are added to automatic mailbox provisioning.
So if you want to make life easier for admins that use EMC or EMS to create new mailbox accounts without needing actively selecting database and also have to wonder witch database they should select from a load balance scenario then disable the automatic mailbox provisioning on the mailbox databases you don’t want provisioning agent to automatically create mailboxes on and have it only enabled for databases you choose.
To disable mailbox database from the automatic mailbox provisioning you have two to archive this:
Set-MailboxDatabase –Identity ‘Database-01′ –IsExcludedFromProvisioning $True
Set-MailboxDatabase –Identity ‘Database-01′ –IsSuspendedFromProvisioning $True
To enable mailbox database with the automatic mailbox provisioning just set the option to $False
Set-MailboxDatabase –Identity ‘Database-01′ –IsExcludedFromProvisioning $False
Set-MailboxDatabase –Identity ‘Database-01′ –IsSuspendedFromProvisioning $ False
You only need to run one of those commands, “IsExcludedFromProvisioning” or “IsSuspendedFromProvisioning”. According to Microsoft the difference is:
The “IsExcludedFromProvisioning” parameter specifies that this database is permanently not considered by the mailbox provisioning load balancer. If the IsExcludedFromProvisioning parameter is enabled, new mailboxes aren’t added automatically to this database. You can manually add a mailbox if your role permits.
The “IsSuspendedFromProvisioning” parameter specifies that this database is temporarily not considered by the mailbox provisioning load balancer.
When you now run the New-Mailbox wizard you don’t need to specify the mailbox database manually but let the mailbox provisioning handle this.