Upgrade all Berkeley db's

Toomas Aas toomas.aas at raad.tartu.ee
Thu Feb 7 14:18:24 EST 2008


Martin Schweizer wrote:


>  I use FreeBSD 6.3 and Cyrus 2.3.11 (with sasldb2). All works correct.
> In the upgrade process (2.3.9 to 2.3.11) I checked also all the db
> files.  

So you currently have 2.3.9 and want to upgrade to 2.3.11?

I found the following:
> 
> file /usr/local/etc/sasldb2:
> /usr/local/etc/sasldb2.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)
> 
> -> Do I need to upgrade the sasldb2 or can I let is as is?

sasldb2 is not directly used by cyrus-imapd, it is used by cyrus-sasl2. If 
your upgrade doesn't involve upgrading cyrus-sasl2 then you don't need to 
worry about sasldb2.

> 
> file /var/imap/*.db:
> - annotations.db:  Apple QuickTime movie (modified)\012- Cyrus skiplist DB
> 
> - deliver.db:      Hitachi SH big-endian COFF object, not
> stripped\012- Berkeley DB (Btree, version 8, native byte-order)\012-
> Berkeley DB (Btree, version 8, little-endian)
> 
> - mailboxes.db:    Apple QuickTime movie (modified)\012- Cyrus skiplist DB
> 
> - tls_sessions.db: Berkeley DB (Btree, version 8, native
> byte-order)\012- Berkeley DB (Btree, version 8, little-endian)
> 
> pkg_info|grep db:
> db3-3.3.11_3,1      The Berkeley DB package, revision 3.3
> db41-4.1.25_4       The Berkeley DB package, revision 4.1

Danger Will Robinson! Having multiple versions of BDB on the same machine 
is an easy way to shoot yourself in the foot during installation of any 
BDB-dependent software..

> db3_dump deliver.db and tls_sessions.db:
> VERSION=3
> format=bytevalue
> type=btree
> ...
> This means for me it's db3. Can I upgrade it with db3_dump to a text
> file db41_load in a new database file? Or can cyrus create
> tls_session.db and deliver.db new?

You could also just leave these files in db3 format by specifying 
WITH_BDB_VER=3 during the port build.

tls_sessions.db is a transient file anyway and if you just delete it then 
Cyrus re-creates it. It is used to keep track of current TLS sessions, as 
it's name implies.

In my experience, deliver.db is also automatically re-created by Cyrus so 
it can be deleted, but I'm not sure what you lose if you do so. I have 
migrated Cyrus to another server 3 times during past couple of years and 
I've never bothered to transfer deliver.db from old server to new. No-one 
has complained.

> 
> annotations.db:
> How I can upgrade this db? Do I need it or can cyrus createannotations.db?

Again, this file in my experience is automatically re-created by Cyrus.

> mailboxes.db:
> This I can dump/restore by ctl_mboxlist -d/-u.

You could do so, but it is not necessary for the upgrade.
> 
> What is about the files in the directories /var/imap/db and
> /var/imap/user? How I should dealt with these? Did I foreget
> something?

/var/imap/db is the 'Berkeley DB environment', whatever that means. If you 
do decide to go from db3 to db4 then you probably need to do something 
about it.

/var/imap/user is important. It contains files that keep track about which 
users have subscribed to which mailboxes and which messages they have read. 
It survives 2.3.9 -> 2.3.11 upgrade without any problems.

HTH
-- 
Toomas Aas


More information about the Info-cyrus mailing list