recovery from complete loss of mailboxes.db?

Patrick Goetz pgoetz at
Sat Apr 29 15:41:45 EDT 2017

Hi -

I'm assembling some system documentation for a client and have been 
pouring over my cyrus notes and looking at the man pages.  A couple of 
questions, starting with the simple one.

annotations.db: "This database contains mailbox and server annotations."

I still have no idea what this is used for.  Can someone give me an 
example of a mailbox or server annotation.

Next:  Suppose I've completely lost /var/imap/mailboxes.db as well as 
/var/imap/db.backup1 and /var/imap/db.backup2.  Is there any way to 
recover from this?  Given that

     /usr/lib/cyrus/bin/reconstruct -r -f user/userN

will add missing mailfolders to mailboxes.db, can I reconstruct 
mailboxes.db by simply iterating over all mailbox directories?

   # cd /srv/imap/user
   # for i in $(ls)
   # /usr/lib/cyrus/bin/reconstruct -r -f user/$i
   # done


Finally a note on the documentation:

On this page:

one finds the following comment: "If you do find yourself with a 
corrupted mailboxes.db, there are a few things you can try. The first is 
to see if db_recover can recover your database."

However, there is no db_recover listed under Tools & Utilities here:

/usr/bin/db_recover is installed on my system, so it exists, but there 
isn't a man page for it, either, leading to wonder how one is supposed 
to know what the syntax is for this command.

I guess that wasn't actually the final question.  I'm currently running 
version 2.5.10 and am thinking about upgrading to 3.0.1.  The default db 
format appears to be Twoskip, and I'm pretty sure that all my db files 
are Skiplists.  Is this going to be like the Berkeley DB to Skiplist 
thing when upgrading from 2.2 to 2.4, where all the Berkeley DB 
databases were automatically converted to Skiplists, or does a 
conversion to Twoskip require some manual intervention?

Thanks in advance.

More information about the Info-cyrus mailing list