When attempting to remove a database from an Exchange Server 2013 mailbox server you may encounter the following error.

Exchange 2013 Database Removal Error: “This mailbox database contains one or more mailboxes”
Error attempting to remove an Exchange Server 2013 database

This mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or arbitration mailboxes.

This error can occur even on a brand new mailbox database that you have not migrated any mailboxes to or created new mailboxes on.

The error message contains details that describe both the root cause (mailboxes that still exist on the database) and the solution (removing the mailboxes). Let’s take a look at each of the mailbox types and the required actions to move or remove them.

Mailbox Users

Normal mailbox users can be moved to another database. To move the mailboxes issue a New-MoveRequest command and wait for the moves to complete.

For example, to move the mailboxes from “Mailbox Database 2” to “Mailbox Database 1” the following command is used.

[PS] C:\>Get-Mailbox -Database "Mailbox Database 2" | New-MoveRequest -TargetDatabase "Mailbox Database 1"

Archive Mailboxes

The cmdlet provided in the error message does not actually help you identify archive mailboxes located on the database in question. For example if I am trying to remove “Mailbox Database 2”, the error message tells me:

To get a list of archive mailboxes in this database, run the command Get-Mailbox -Database DatabaseID -Archive.

However, running that command shows me no results.

[PS] C:\>Get-Mailbox -Database "Mailbox Database 2" -Archive

Instead I can run this command to identify mailboxes with the ArchiveDatabase attribute matching the database that I’m trying to remove.

[PS] C:\>Get-Mailbox | Where ArchiveDatabase -eq "Mailbox Database 2"

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Ana.Williams              Ana.Williams         e15mb1           Unlimited
Dawn.Evans                Dawn.Evans           e15mb1           Unlimited
Chris Brown               chris.brown          e15mb1           Unlimited

To move those archive mailboxes I can issue the New-MoveRequest cmdlet again.

[PS] C:\>Get-Mailbox | Where ArchiveDatabase -eq "Mailbox Database 2 | New-MoveRequest -ArchiveOnly -ArchiveTargetDatabase "Mailbox Database 1"

Arbitration Mailboxes

Arbitration mailboxes serve a variety of purposes in Exchange Server 2013, but the important thing at the moment is that they will prevent removal of the database on which they reside.

To view the arbitration mailboxes for a database append the -Arbitration switch to the Get-Mailbox command.

[PS] C:\>Get-Mailbox -Database "Mailbox Database 2" -Arbitration

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
SystemMailbox{1f05a927... SystemMailbox{1f0... e15mb2           Unlimited
SystemMailbox{bb558c35... SystemMailbox{bb5... e15mb2           Unlimited
SystemMailbox{e0dc1c29... SystemMailbox{e0d... e15mb2           Unlimited
Migration.8f3e7716-201... Migration.8f3e771... e15mb2           300 MB (314,572,800 bytes)
FederatedEmail.4c1f4d8... FederatedEmail.4c... e15mb2           1 MB (1,048,576 bytes)

Arbitration mailboxes can be moved to another database like any other mailbox move request.

[PS] C:\>Get-Mailbox -Database "Mailbox Database 2" -Arbitration | New-MoveRequest -TargetDatabase "Mailbox Database 1"

Public Folder Mailboxes

In Exchange Server 2013 public folder data is stored in special “public folder mailboxes” that can reside within the same databases as regular mailboxes. To check a database for public folder mailboxes run the following command.

[PS] C:\>get-mailbox -Database "Mailbox Database 2" -PublicFolder

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Public Folder Test        PublicFolderTest     e15mb2           Unlimited

Public folder mailboxes can be moved the same as other mailboxes.

[PS] C:\>Get-Mailbox -Database "Mailbox Database 2" -PublicFolder | New-MoveRequest -TargetDatabase "Mailbox Database 1"

Mailbox Plans

Mailbox plans are not relevant for on-premise installations of Exchange Server 2013 so you can disregard these.

Completing the Removal of an Exchange 2013 Database

When all of the above mailbox types have been removed from a database you can proceed with the removal of the database itself.

In the Exchange Admin Center navigate to Servers -> Databases, highlight the database you wish to remove and then click on the trash icon.

Exchange 2013 Database Removal Error: “This mailbox database contains one or more mailboxes”

If you were successful in identifying and removing all of the mailboxes from the database then the database removal should complete successfully.

Exchange 2013 Database Removal Error: “This mailbox database contains one or more mailboxes”

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for Practical365.com.

Comments

  1. Bob

    I tried everything i could for removing mailbox database in Exchange2013 including deleting of AuditLog, Archive, Arbitration, Public Folder, Monitoring mailboxes but still cant remove databases.
    what else do i have to check for

  2. Shaun Raven

    One thing to bear in mind. If you DO have a multi AD domain environment, don’t forget to use -domaincontroller on get-mailbox requests and run for each AD domain you control – you may find additional mailboxes you’ve missed!

    1. Steve

      Or.. just use Set-ADServerSettings -ViewEntireForest $True first to make it search the entire forest.

  3. Marcina

    To remove the requests I used:

    (Get-MailboxExportRequest | ?{ $_.RequestQueue -eq “DatabaseName” })|%{Remove-MailboxExportRequest -identity $_.identity }

    (Get-MailboxImportRequest | ?{ $_.RequestQueue -eq “DatabaseName” })|%{Remove-MailboxExportRequest -identity $_.identity }

    Then, for good measure, I ran:
    Get-MailboxStatistics -Database “DatabaseName | Where { $_.DisconnectReason -ne $null } | ForEach { Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$false }

    Marcina

  4. Marcina

    OK, just dealt with this on Exchange 2013 and all “system” mailboxes mentioned above were removed yet I couldn’t’ remove the database. I found out that there were some mailbox export and import requests to previous mailboxes on the database – revealed by:

    (Get-MailboxExportRequest | ?{ $_.RequestQueue -eq “DatabaseName” })
    and
    (Get-mailboxImportRequest | ?{ $_.RequestQueue -eq “DatabaseName” })

    Once those were removed, I was able to delete the database without issue.

    Hope that helps!

  5. James Collins

    Hello Paul – I love all of your material, thanks for all the help I have received from reading your articles. I have 16 exchange 2013 servers at CU21 and 3 – 2007 servers that still need to be decommissioned. We have one DAG in US, and one in UK. CAS is load balanced at https://mail.ourdomain.com/owa. There is also an Exchange mgmt server in the US and UK, just for /ecp, as I have -AdminEnabled $False at https://mail.ourdomain.com/ecp. I am currently migrating from distributed exchange servers per site, to a central Data Center. I have de-commissioned 3 servers already, but the 4th and the very first 2013 exchange server in our org will not uninstall. It keeps re-creating a health monitoring mailbox with a DB guid for a DB that no longer exists. When I shut this server down as a test, and I go to login to https://exchangemgmt_uk/ecp (one of the mgmt servers) when I login with my admin account, I get a blank screen! They are completely different servers. This server was in a DAG with another server that is currently shutdown, pending an uninstall. Please help, or I may have to open a ticket with M$. -Thanks

  6. andrew

    The problem we have is that someone has manually removed the mailbox database file before removing it from Exchange.
    I have managed to relocate all mailboxes except the auditlog mailbox.
    Do you know how to create this on another mailbox database and tell Exchange it no longer exists on the original database?

  7. Tim Schoeller

    ArchiveDatabase value is case sensitive. -eq “MDB1” is different from -eq “mdb1” in Exchange 2016 anyhow.

    Hope this helps someone save the hour I just lost.

    1. Mike

      Thanks for this!

  8. Andrew Suthanah

    @ Paul Cunningham. Maybe add that if Exchange server is in child domain you should include Set-ADServerSettings -ViewEntireForest $true

    This is because arbitration mailboxes are ‘owned’ by AD accounts in the root domain.

    Thanks for the great info though 🙂

    Andy

    1. Tyler

      Dude you saved me from pulling what hair I have let out. Thanks for this post!!!

  9. Charles

    We have a corrupt edb no repairs have worked backups are also bad, I am able to extract to PST the mailboxes but need to remove the unmountable edb. It will not delete because it sees existing mailboxes that I can not move.

    Any suggestions on how to eliminate the existing edb so I can create a new one and import the psts? We have been down 2 days now and I have had no sleep!

  10. Marcus

    thanks again – your blog is so good I don’t even bother making my own notes 😉

  11. Mauro

    Hi Paul,
    I’ve moved all mailboxes into a new database, but the default database “Mailbox Database 0835252682” is still not deletable…
    How can I do?
    Thanks a lot!

    1. Paul Cunningham

      What’s the error message you get? If it’s the same error as the one in the article above then I’d say you’ve missed at least one mailbox.

      1. joel escutia

        Hi Paul,
        What if I’m running Exchange 2010 Hybrid Configuration and want to remove all the databases on-prem and still use the exchange server for management. What command do I use to remove the last database that house the arbitration mailboxes? Will removing the arbitration accounts affect office 365 Hybrid?

        Thanks

  12. Kelley Underwood

    While building new databases on new storage, I negligently deleted the volumes (DB and Log) for the first database. There are no copies available on any other server and the disk files are gone. However, the DB still show in the list and I cannot remove it. I get the same info as you write about in this post.

    Is there a way to force the removal of this database. How about recreating system mailboxes that may have been located there?

    Thank you for your great articles!

    1. Paul Cunningham

      Can you add the storage back, mount the database (it should create a new edb file) and then move the mailboxes before removing it again?

      1. Stuart

        Hi Paul,

        I moved the arbitration, monitoring and standard mailboxes from the default database as I wanted to delete it.

        I then removed the database in the EMS. Then found I couldnt delete the folder containing the old database (Exchange 2016MailboxMailbox Database 0477187271). So I stopped the ‘Microsoft Exchange Search Host Controller’ service. This enabled me to delete the folder which contained edb , logs and other files.

        Now I find the folder re-created itself and some subfolders and files have appeared inside: (edb remains deleted)

        Mailbox Database 0477187271905A7EC2-13F5-4299-BF55-0277C68C6A0B12.1.Singleindexmeta

        Mailbox Database 0477187271905A7EC2-13F5-4299-BF55-0277C68C6A0B12.1.Singlejournal

        Mailbox Database 0477187271905A7EC2-13F5-4299-BF55-0277C68C6A0B12.1.Singlems

        This is all becuase I didnt know about the Audit mailbox (no error to warn me) and then forcably (and regrettably) removed the containing folder on the file system.

        I have repeated the exercise on anothe rserver, this time removing the Audit MBX and dont have any problems deleting the actual files. So it seems related to the Audit MBX not having been removed properly.

        I see no way to recover this other than to find the entries in the configuraton partition to remove the references to the Audit MBX using ADSIedit.

        Any advice please?

  13. David

    Nice, but the EAC shows no database exists. The files do not let me delete them. I am going to add copies from another server to form a DAG. Will the files hurt anything? Not sure what to do about them.

    1. Paul Cunningham

      So in Windows explorer you see an EDB file and you can’t find a database in Exchange that maps to that file?

      Next thing I would do is use a process monitor tool to see which process actually has the files locked.

  14. Luis

    As always, thank you for clear advice and instruction! I just wanted to add that if you’re trying to get rid of a mailbox database in an Exchange 2013/2016 DAG environment there may be some hidden mailboxes in addition to the arbitration mailboxes that need to be migrated off.

    This will move those HealthMailbox accounts:
    Get-Mailbox -Database “” -Monitoring | New-MoveRequest -TargetDatabase “”

    This will move a hidden SystemMailbox:
    Get-Mailbox -Database “” -AuditLog | New-MoveRequest -TargetDatabase “”

    Once user, public folder, archive, arbitration, monitoring, and auditlog mailboxes have been moved, the mailbox should delete without further whining.

    1. Daniel

      Thank you so much!! I was pulling my hair out because I was unable to remove the initial Exchange 2016 database. Now I know why. 🙂

        1. Paul Cunningham

          I think the new database removal behaviour is that it will let you remove the DB when monitoring mailboxes are still present anyway. I’m not sure which CU they added that in though.

    2. ndfan77

      > This will move a hidden SystemMailbox:
      > Get-Mailbox -Database “” -AuditLog | New-MoveRequest -TargetDatabase “”
      ^^
      THIS!!

      I was also pulling my hair out for hours trying to get my first Exchange 2016 Server to uninstall after a like-for-like migration to a second Exchange 2016 Server. Nothing actually showed for:

      Get-Mailbox -Database DB01
      Get-Mailbox -Database DB01 -Arbitration
      Get-Mailbox -Database DB01 -Archive
      Get-Mailbox -Database DB01 -PublicMailbox

      And,

      Remove-MailboxDatabase DB01 -Verbose

      Showed no clues before the ever frustrating “This mailbox contains one or more Mailboxes, Mailbox Plans….” dialog.

      Finally,

      Get-Mailbox -Database DB01 -AditLog

      Showed a SystemMailbox… And, after doing:

      Get-Mailbox -Database DB01 -AuditLog | New-MoveRequest -TargetDatabase DB02

      I was finally able to proceed with the uninstall on the Exchange 2016 server that hosted DB01.

      However, the (expletive withheld) Exchange 2016 uninstall crashed after “Step 9 of 13: Stopping Services”. I hope the remaining steps had nothing to do with removing the server from Active Directory.

      As best I can tell it does seem to have been removed. Poking around EAC doesn’t show any sign of it in under Servers: Servers/Databases/Virtual Directories.

      If anyone knows what the remaining uninstall steps 10, 11, 12, and 13 are I’d appreciate knowing for sure whether I need to focus any further on the incomplete uninstall.

  15. Stefan

    Is there any harm in creating a separate database for the arbitration mailboxes?

  16. Andrew

    had a client with a single server single db environment that the server failed on in the end due to duplicate SPN in the directory for the exchange server. Before we were able to determine that MS had me stand up a new server from scratch copy over the database rename it and mount it on teh new server with a new name. I now still have the records of the original server/database in my exchange environment. Aside from manually removing this using ADSI edit, is there a way I can manually remove the database references using the preferred tools (EAC, or EMS)? just curious because the old database doesn’t exist and cannot be mounted to move mailboxes the system thinks still exist in the database which prevents me from removing it using EAC.

  17. Mike

    im just copying an earlier question since we are in the same boat . My mailbox database is corrupt and wont mount…therefore i cant move the arbitration mailboxes to new DB, it gives DB is not mounted.. as the DB is corrupt its not mounting… exchange 2010 SP3

    How to move or recreate the Arbitration mailboxes to new DB, I have already moved all my mailboxes.. but cant remove the old datastore.. any pointers…
    thanks for the help…

  18. Garmac

    I have the same issue as Bikram. Can’t move the arbitration mailboxes. Even after fixing my mailbox database and it shows clean shutdown, it errors out when I try to mount it. How can I re-create the arbitration database to my new working mailbox? I’m at 2013 CU7 with 2010 coexistence environment. Thanks for any pointers

  19. Roman

    Hi, I moved all archive mailboxes to new database. Move was successful however, mailboxes were not deleted from old databases, therefore I’m not able to delete old database.

    Any advise?

  20. Jon Beets

    Paul,

    Great article. It covers all the mailbox moves required before a mailbox database delete. Thanks for taking the time to document the steps. Exchange 2013 is a complex product that requires preparation and training, imho.

    Jon

  21. PJ

    You can only say thank you once again to Microsoft for wasting everyones time with their ridiculous products. How many posts and blogs for a simple thing like remove a database. And i remember having the same problem 10 years ago in 2003! You could now possibly suck any more microsoft exchange development team. You brought us windows so we didn’t have deal with command lines and now you brings command lines to deal with windows!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! kill me now!

  22. Wynand

    THANKS!!!! AWESOME ARTICLE

  23. Steve Rackham

    Hi Paul
    I too am in Neil’s position.
    All mailboxes have been moved and nothing is reported when querying the database, Exchange 2010 SP3 to 2013 CU5 upgrade and removing the last 2010 database I get this error.
    Any advice on how to progress greatly appreciated. I have tried setting ADServerSetting to true with no luck either.
    Thanks for your help.
    S.

  24. Neil

    Hi Paul,

    Sorry for posting here, however I could not find your exchange 2010 article to delete a mailbox database.

    I have a database in exchange 2010 which I am unable to delete. It has no user mailboxes and the arbitration mailboxes have been moved to a different DB, yet I am unable to remove the DB. I have checked for soft deleted and archive mailboxes and these do not exist in the DB either.

    Is there anything I am missing? I am hoping you can shed some light on this?

    Thanks in advance for your help

  25. Bikram

    HI, My mailbox database is corrupt and wount mount…therefore cant move the arbitration mailboxes to new DB, it gives DB is not mounted.. as the DB is corrupt its not mounting… exchange 2010 SP3

    How to move or recreate the Arbitration mailboxes to new DB, I have already moved all my mailboxes.. but can remove the old datastore.. any pointers…
    thanks for the help…

  26. vadim

    Another nice one is discovery mailbox. If you try to remove default db it wont let you because there is hidden (from Ick at least) Discovery mailbox. The only way I figured to deal with it is to use move all mailboxes option in pms.

  27. Gene

    Problem: I have PF on server 1, 3 and 4, PF’s are in use on 3 and 4 but I had replication from 3 going to 1 until the other day when the DB had an issue, I tried to remove it from the console in EX2010 but it said it couldn’t, I tired to removed it manually and the logs as well but it never would let me remove it in Exchange2010, now I’m stuck with a PF that doesn’t work on Sever 1 and it won’t let me remove it nor build a new until that one is gone, the DB is now corrupt and seems to be the same issue for the logs. Is there a way to force the old PF off of server one and try a new replication on a new PF? BTW the PF Database I’m trying to remove shows that it is dismounted in the console and also will not let me mount it either.

  28. Mike

    I followed this guide and moved all user and arbitration mailboxes I could find to another database and then deleted the database. Deleting the database was successfull, I suppose, as it disappeared from the EAC UI, but I got an error at the same time as it told me to manually delete the database file: “Failed to remove monitoring mailbox object of database “Default database”. Exception: Active Directory operation failed on dc.contoso.local. This error is not retriable. Additional information: Access is denied. Active directory

    response: 00000005: SecErr: DSID-031520B2, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0 .”

    If I run”Get-Mailbox -Monitoring” now it shows three warnings like the below:

    “WARNING: The object contoso.local/Microsoft Exchange System Objects/Monitoring Mailboxes/HealthMailboxb6d12aac1ab742e9a638474d740c70d7 has been corrupted, and it’s in an inconsistent state. The following validation errors happened:
    WARNING: Database is mandatory on UserMailbox.
    WARNING: Database is mandatory on UserMailbox.”

    Any clue to why that is occuring, and is it safe to just remove those three mailboxes by force?

    1. Frank

      I guess you fixed this one 4 years aog but I’m writing it anyway for the next fellow ExAdmin who may be googling for answers:
      – Try mounting the database and trying again

    2. Obi Ejiofor

      The solution to this issue

      1 Stop the “Microsoft Exchange Server Health Manager” service

      2 exhange powershell Get-Mailbox -Monitoring | Disable-Mailbox

      3 in active directory delete all health mailbox accounts

      4 force AD replication

      5 Start the “Microsoft Exchange Server Health Manager” service

      The health mailboxes will now be recreated and the warnings should be gone

  29. Joerg Richter

    Hi Paul,

    good job!!

    It just stopped unexpected for me, cause it seems not possible to delete the datafiles from your removed mailbox, I always get “file is open in another program”. And if you managed to identify and stop these other “programs” (exchange search host controller) you can delete those file, but after restart of stopped services they all come back by magic.

    Do you run into the same “feature”

    Thanks!

  30. kamal@sandarusi.com

    GAH!
    I need to read more and be less impulsive.
    So after 2010SP3 came out I though I was free and clear to install 2013 in my 2010 environment.

    NOOOO! 2013 doesn’t work right, (but it installed normally!) It worked for a little while. After further reading, I realized I was supposed to wait for 2013CU1. grrrrr.

    SO now I want to remove it, but I get the arbitration mailbox problem. Trouble is, they won’t move to the 2010 database, so I am stuck.

    Q: Would it be safe to disable the arbitration mailboxes in the 2013 installation, so I can remove it?
    or
    Q: should I just wait until CU1 comes out, and try to upgrade the 2013 to 2013cu1?

    Thanks.

  31. NETWolF

    Great Article! Thanks for write it 🙂

  32. Vivek Sharma

    I had faced this on Exchange 2010 as well while trying to delete the default mailbox databases created when you install the MBX role. Had to move all the obstructing mailboxes through EMS before it would allow a delete.

Leave a Reply