ctl_cyrusdb questions, looking for answers

Adam Tauno Williams awilliam at whitemice.org
Tue Mar 24 12:46:09 EDT 2009

On Tue, 2009-03-24 at 17:18 +0100, Michal Hlavinka wrote:
> Hi,
> thanks all for the answers. Some summary what I know (please correct me if I'm 
> wrong):
> 1) checkpointing
> "Checkpointed" are this databases:
> but only DBs with Berkeley DB-Engine it does something. So really checkpointed 
> are:
> tls_sessions.db
> deliver.db
> statuschache.db
> ptclient/ptscache.db

Incorrect, the Berkeley DBs will be checkpointed.  What databases are in
which format is a site configuration issue.

> And checkpointing here only means sync and commit changes if there is a lot of 
> them.

For Berkley DBs generally yes - for details see the Berkeley DB
documentation.  Skiplist files do checkpoint [rewrite themselves] but
not related to the checkpoint interval in cyrus.conf

> 2)backuping
> Backuped are only this databases:
> mailboxes.db
> annotations.db
> quotas.db
> there is no need to backup deliver.db, statuscache.db, or tls_sessions.db. 
> These can be rebuilt with no data loss.
> But what about ptclient/ptscache.db ?

ptscache.db can be discarded.  It is only a "cache".

> 3) "real" backup
> when I want to create "real" backup (for example for hdd failure) I need to 
> backup only
> mailboxes.db
> annotations.db
> quotas.db
> from /var/lib/imap (or from /var/lib/imap/db.backup1 ?) or something else?

I'd assume you also want user's SIEVE scripts.

> 4)check corrupted db
> There is no tool I can use to check if database is corrupted. I can only check 
> logs for errors (will cyrus-imapd terminate or will it work with corrupted 
> database - so I can easily miss the error in the logs?). Can I use chk_cyrus 
> for this somehow?

You can export a database to a file format like flat.  That is useful
for consistency checking and for backups.

> 5) ctl_cyrusdb -r
> I'm not completely sure what is effect of ctl_cyrusdb -r (it's executed always 
> when cyrus-imap is starting)
> This means that not committed changes (everything after last ctl_cyrusdb -c ) 
> are thrown away? Or it's just check "everything is ok" ?

I believe this relates to Berkeley DB databases primarily.

More information about the Info-cyrus mailing list