Matt Goebel mgoebel at
Mon Jun 27 15:04:30 EDT 2005

I backup Cyrus with the following method:

1. Stop MySQL (used for login/alias etc)
2. Create a filesystem snapshot of the volume mail is stored on in LVM2 3.
Restart MySQL (down for all of 5 seconds)
4. Backup /var/spool/imap/* /var/lib/imap/* (and a few other things) from
the snapshot.
5. Release the snapshot.

That way I have a consistent state and the DB files are all in sync.  If I
need to do a full restore I just put the files back.  In the case I needed
to restore one email I put that back and do a reconstruct on the mail
folder.  Works pretty well.  /var/lib/imap isn't very big so it's not a
big deal to just back it all up.  That way you've got sieve filters, seen
state, etc... in one place.

Derek Yarnell said:
> So my understanding of the backup procedures of cyrus imapd are,
> (I am running on RHEL4 built in version of cyrus-imapd 2.2.12)
> 1) backup /var/spool/imap (or all the actual message stores, there are
no BerkleyDB's in here so they can be backed up normally?)
> 2) backup /var/lib/imap/sieve, /var/lib/imap/quota and
> /var/lib/imap/user which are all non DB so they can too be backed up
> 3) berkleyDB dump
> /var/lib/imap/{mailboxes.db|annotations.db|deliever.db} and get them
backed up.
> 4) what about /var/lib/imap/db directory? what is it doing exactly, i
can not find this directory in the docs?
> Now when I restore, it is a bit fuzzy on this, I can just restore the
stuff from #1 in the same place as it existed before and then run
> What about restoring the rest? just db_load the DB files?
> Thanks for any help.
> --
> ---
> Derek T. Yarnell
> University of Maryland
> Institute for Advanced Computer Studies
> derek at
> ---
> Cyrus Home Page:
> Cyrus Wiki/FAQ:
> List Archives/Info:

Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list