updating cyrus databases

Simon Matter simon.matter at invoca.ch
Wed Mar 23 03:56:32 EDT 2011


> Hello,
>
> I need to update my databases from 4.2 to 4.7. Unfortunately the guide I

I see, you mean updating BerkeleyDB.

> used last time to update my database has disappeared. All of the stuff I
> find currently on the web says just use cvt_cyrusdb to update your
> database. Which seems pretty straight-forward when I look at the man
> page, but then when I look at my cyrus directory, I get nervous. Which
> files exactly, am I suppose to update? There are so many with db at the
> end, do I do them all?
>
> ella:~# ls /var/cyrus/data/
> annotations.db  db.backup1  deliver.db  mailboxes.db   msg   quota
> tls_sessions.db
> db              db.backup2  log         mailboxes.db~  proc  socket  user
> ella:~# ls /var/cyrus/data/db
> __db.001  __db.002  __db.003  __db.004  __db.005  log.0000000048
> skipstamp
>
> So, everything with a db in it? And what exactly is  <old-fileformat>
> and  <new-fileformat>? Is that the DBEngine from
> lib/cyrus/cyrus-db-types.active? So, BerkeleyDB4.2 and  BerkeleyDB4.7?
>
> And once I'm done, I move the old ones out, rename the new ones to the
> old names, get rid of lib/cyrus/cyrus-db-types.active, and reconfigure
> the package?
>
> If someone has a link to a guide that has more info than the ones I have
> found so far, that may be the easiest thing.

I'm not sure you can upgrade BDB using cvt_cyrusdb directly. I think you
can only do it by exporting to a neutral formal like skiplist, then
updating BDB, and the converting the db's back to BDB. Another way should
be to use the BDB upgrade tools for this.

However, why don't you just get rid of BDB so you don't have to care about
it in future? Any reason you can't convert to skiplist and leave BDB
behind? If you're running a recent Cyrus version then that's strongly
recommended and makes life much easier.

Simon



More information about the Info-cyrus mailing list