ctl_cyrusdb questions, looking for answers

Andreas Winkelmann ml at awinkelmann.de
Thu Mar 19 06:28:13 EDT 2009

> does anybody know, how ctl_cyrusdb works (how it should be used)? I've
> seen ctl_cyrusdb's man pages, but there is just few notes and nothing
> more.

ctl_cyrusdb has two modes to operate. One is checkpointing and archiving
the other one is recovering. There can only run one action at a time.

Checkpointing and Archiving:

> ctl_cyrusdb [ -C config-file ] -c

ctl_cyrusdb executes checkpointing for all Databases (mboxlist, quota,
annotation, duplicate, tlscache, ptscache and statuscache) but only the
Berkeley DB-Engine supports checkpointing at the moment. So at the end
checkpointing is done for all BDB Databases. So for BDB Databases the
Memory will be flushed to disk, the checkpoint is written to the 
Transaction Log and the Log is flushed to the DB File(s).

Archiving is basicially copying the DB Files to the
$configdirectory/db.backup1 Directory. Before copying starts the existing
$configdirectory/db.backup1 Dir will be moved to
$configdirectory/db.backup2. There are three DBs which will be archived
(mboxlist, quota and annotation). Only the SQL DB-Backend dos not support


> ctl_cyrusdb [ -C config-file ] -r [ -x ]

ctl_cyrusdb starts recovering for all Databases. Only BDB and skiplist do
support recovering.

Unless -x is specified recovering includes deleting of Mailbox
reservations. Mailbox reservations are done in the process of Mailbox

> I assume ctl_cyrusdb is used (in /etc/cyrus.conf) to generate
> "checkpoints" of the Cyrus databases, presumably those in /var/lib/imap.
> The information that man does not provide is
> 1) Listing of database files "checkpointed"

see above

> 2) Description of checkpoint format
>   a) "ls /var/lib/imap" suggest two sets of checkpoint database are
> retained.

db.backup1/2 is the backup Directory for archiving. Not related to

>   b) Description of checkpoint configuration options, if any, to control
> checkpoint sets

Nothing in Cyrus-IMAP I am aware of.

> 3) Checkpointed image backup requirements


> 4) Appropriate cross-references to utilities used to determine database
> corrution requiring recovery procedure

If Cyrus finds DB Corruption you will see it in the Logs.

> 5) Appropriate recovery procedure when invocation with "-r" vs. "-r -x'
> is required.


> It'll be really appreciated if someone could explain at least some of
> these questions. Thanks


More information about the Info-cyrus mailing list