updating cyrus databases

Simon Matter simon.matter at invoca.ch
Mon Mar 28 05:04:25 EDT 2011

> On 3/26/11 3:33 AM, Simon Matter wrote:
>>> On 3/23/11 12:56 AM, Simon Matter wrote:
> <snipped a bunch>
>> What I meant was running skiplist only, then you don't have to worry
>> about
>> BerkeleyDB anymore.
> I see, so currently I am using skiplist for some stuff, but the
> BerkelyDB for other stuff, and I should switch to only using skiplist. I
> found an old mail of yours where you explained that you did this by
> adding "duplicate_db: skiplist" and "tlscache_db: skiplist" in
> imapd.conf, but haven't found any formal instructions for this.
>> The lines below (and also the case that you are using am old version)
>> indicate that you are running Debian? So there may be Debian specific
>> instruction which may not be found on the Cyrus site.
> I have had a terrible time finding instructions. Google fails me. :-(
>>> ella:~# cat /usr/lib/cyrus/cyrus-db-types.active
>>> ANNOTATION skiplist
>>> DBENGINE BerkeleyDB4.2
>>> DUPLICATE skiplist
>>> MBOX skiplist
>>> PTS berkeley
>>> QUOTA quotalegacy
>>> SEEN skiplist
>>> SUBS flat
>>> TLS berkeley-nosync
>>> Also, the directions for upgrading a database, found here:
>>> http://www.cyrusimap.org/docs/cyrus-imapd/2.2.13p1/install-upgrade.php
>>> under:
>>> Upgrading from 2.1.x or earlier
>>> General information (ALL SITES)
>>> give instructions for using the cvt_cyrusdb program to convert the
>>> databases to skiplist:
>>> /usr/cyrus/bin/cvt_cyrusdb /var/imap/mailboxes.db berkeley
>>> /var/imap/mailboxes.db.new skiplist
>>> mv /var/imap/mailboxes.db.new /var/imap/mailboxes.db
>>> and the files appear to look exactly the same when you are done as when
>>> you start.
>> Yes, they look the same but they should not be the same. Check with the
>> file command to see what they contain.
> Ah, yes, they do seem to be skiplist:
> ella:/var/cyrus/data# file mailboxes.db
> mailboxes.db: Cyrus skiplist DB
> So, should I try upgrading them with cvt_cyrusdb using the command above
> before I add the skiplist stuff to imapd.conf? Or maybe it makes more
> sense to try adding the skiplist stuff to the imapd.conf before I do the
> upgrade, and maybe then the upgrade will go smoother?

You may want
- stop cyrus
- convert db files using cvt_cyrusdb
- channge settings in imapd.conf to match the converted db files
- start cyrus

Note: current version of Cyrus will convert db files on the fly on
nstartup, but your version doesn't do so.

> When I do add the skiplist stuff to imapd.conf, will it create new
> skiplist files, so the old skiplist .db files can then be deleted? What

They will be recreated, with the same name as they are now.

Note: for deliver.db and tls_sessions.db, you could just delete the files
instead of converting them, Cyrus will just recreate them and nothing
really bad will happen if they are fresh files.

It's really recommended to create a backup of the whole configdir before
doing any changes.


> will they be called and will they be located in the same place? Sorry to
> pester the list so much, but I am just having a hard time finding
> relevant documentation, and I don't want to muck up my mail server.
>>>    From the instructions on that page, it looks like I am suppose to
>>> use
>>> the command on everything with a db at the end, and then on the seen
>> Yes, everything with a .db at the end is usually a Cyrus DB.
>>> state database. I'm just not sure about the other stuff like __db.001
>>> or
>> Those are the files in $CONFIG/db/ right? They are used by the different
>> DB engines internally. You should be able to remove those file or just
>> ignonre them if the DB's are in a sane state.
> Yes, they are in a db directory, and do seem to be something different:
> ella:/var/cyrus/data# file db/__db.001
> db/__db.001: data
> I will ignore them. Thanks so much for your help. Things are starting to
> make more sense.
> ~maria
>> Simon
>>> the sub files in the same directory as the seen file. Furthermore,
>>> these
>>> instructions are for an earlier cyrus version then I have (2.1.x vs.
>>> 2.2.13), so I'm not even sure this is what I am suppose to be doing.
>>> thanks,
>>> maria

More information about the Info-cyrus mailing list