Summary: When Exchange mailbox database limit reaches, it can lead to downtime as the database is most likely to dismount due to inconsistency issue. Such database can't be mounted unless you move the mailboxes from the database using an Exchange recovery software to a new or different database or fix the issue by increasing database size.
From Exchange server 2013 onwards, the size limit of database is drastically increased. The limit is now 1 TB for each database. So, if you’re using the Standard license which has a limit to set up 5 databases, you can have up to 5 TB of mailboxes’ data. Now, if you are migrating from Exchange server 2010 as it has reached its end of life, the size limit is still the same i.e., 1 TB. However, during export and migration, your database might reach it.
So, what happened when an Exchange mailbox database size limit is reached? In such a case, the Exchange database will automatically dismount and you will not be able to mount it. There are two options for you to continue the migration to a newer Exchange server or fix the problem in current Exchange server.
Solutions to Increase Database Size Limit
Solution 1: Upgrade the Exchange 2010 License
The first option is to upgrade the license of your Exchange server 2010 Standard to Exchange server 2010 Enterprise. However, this is expensive and the other problem is that as the Exchange 2010 has already reached its end of life and support, you will not find anywhere to purchase it. You will not need to do installations of drastic changes, but the expense of the license is way high.
This is an extract from the Microsoft article to support the above:
“You can use Registry Editor to modify a database size limit in Microsoft Exchange server 2010. The default database size limit for Exchange 2010 Standard edition is 1024 gigabytes (GB). There is no default database size limit for the Exchange 2010 Enterprise edition. The Exchange store checks any database size limits periodically and dismounts a database when the size limit is reached.”
Link to source: https://docs.microsoft.com/en-us/previous-versions/office/exchange-server-2010/bb232092(v=exchg.141)?redirectedfrom=MSDN
Solution 2: Modify the Registry to Increase Database size
The other option is to modify the registry to increase the size of the database. Now, this is a much cheaper solution than upgrading to an Enterprise level of software. Although in terms of finance it is free, it does come at a price.
If you go against the recommendations of Microsoft’s database size limit, there are chances that you might damage the databases. If you change the databases size limit by using the registry modification, you need to check and test your backup process and also test the backup restores. You must also make sure that the backup application can handle databases larger than 1 TB and that the vendor supports your setup. Another thing to consider is the support from Microsoft as this would go against the agreement on your software assurance and support.
Since you’re modifying the database to support more than the recommended and limited size, your database becomes more prone to corruption and other issues.
How to Modify the Registry to Increase Database Size Limit?
Note: You need to carefully assess the situation before going through with this process as the repercussions might be disastrous.
To start off, you need to modify the registry.
Caution: Be careful on this as there is no undo if something is deleted or wrongly modified.
You need to first identify the GUID of the database in question. For this, open the Exchange Management Shell on your Exchange server and use the PowerShell command Get-MailboxDatabase as given below. This will list all the mailbox databases along with their GUID. You would need this GUID number when updating the registry.
Get-MailboxDatabase | Format-Table Name, GUID
The GUID is needed to find the database in the registry so that you can update the limit. Now, open the Registry Editor by opening regedit from command prompt or searching for it.
Next, browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\<Server Name>\Private-< GUID>
If the DWORD with the name Database Size Limit in GB does not exist, create it.
You need to enter the size of database in decimal format. So, if you want the database limit to be 1.5 TB, you need to enter 1500 and if you want it to be 2 TB, then enter 2000.
After the change is ready, you need to restart the Exchange Server Information Store Service from the Services Management window. After this is done and all works fine, you can try to mount the database and it should work.
What to do if database is damaged?
As you can see, there is some work to be done and the risk is high as you might damage the Exchange server and even the databases. If this happens, you need to use the native tools, such as EseUtil, to try to fix any corruption in the databases.
EseUtil includes two methods. One of them is to run the Soft Recovery. This is the fastest method as it tries to fix only light damage. The other method is the Hard Recovery which basically deletes any data which is deemed as corrupted. This method must be used as the last resort. When you use this method, your support with Microsoft will be nullified. In addition, you need to have enough storage space to perform this operation.
On the other hand, you could also check out a third-party application such as Stellar Repair for Exchange. This application will help you to split your data or export it from an EDB file. With Stellar Repair for Exchange, you can effortlessly connect an EDB file, export it to PST and other formats. You can also selectively export mailboxes directly to an Exchange server database – from Exchange 2013 till 2019. You can open a corrupted EDB file – from Exchange 2007 to the newest version.