how to update BDB

Andreas Hasenack andreas at conectiva.com.br
Fri Jan 21 20:03:54 EST 2005


On Fri, Jan 21, 2005 at 10:49:46PM +0100, Jukka Salmi wrote:
> Hello,
> 
> first of all thanks for the replies.
> 
> Igor Brezac wrote:
> > Reset the bdb environment with the old db_recover binary prior to upgrade.
> > I do not think that the database format changed between the two BDB
> > versions.
> 
> No, it did not. But the log file format changed.
> 
> I tried this without success:
> 
> $ db4_recover.old -v -h /var/imap/db 
> db_recover: Finding last valid log LSN: file: 1 offset 1462435
> db_recover: Recovery starting from [1][1462347]
> db_recover: Recovery complete at Fri Jan 21 22:29:58 2005
> db_recover: Maximum transaction ID 80000090 Recovery checkpoint [1][1462435]
> 
> ...but ctl_cyrusdb still complained:
> 
> master[5394]: about to exec /usr/pkg/cyrus/bin/ctl_cyrusdb
> ctl_cyrusdb[5394]: DBERROR p*^F^H: db4
> ctl_cyrusdb[5394]: DBERROR: critical database situation

db_recover does not upgrade the log files, but it does clean the environment
and that's a good thing during such an upgrade.

> Andreas Hasenack wrote:
> > You would have to get rid of the transaction log files. Probably by
> > checkpointing.
> > According to the BDB docs, the log file format has changed.
> 
> $ db4_checkpoint.old -1 -v -h /var/imap/db 
> db_checkpoint: checkpoint: Fri Jan 21 22:37:42 2005

I guess you will have to get rid of that lone log file. Perhaps this:
- recover
- checkpoint
- dump database with BDB tool
- remove log file
- reload database with new db_load tool

> 
> ...same results as above.
> 
> 
> Sebastian Hagedorn wrote:
> > db_dump and db_restore, perhaps also db_upgrade.
> 
> $ db4_dump.old deliver.db >deliver.db.txt
> $ db4_dump.old tls_sessions.db >tls_sessions.db.txt
> $ db4_load.new tls_sessions.db <tls_sessions.db.txt
> $ db4_load.new deliver.db <deliver.db.txt
> 
> ...same results again.
> 
> 
> (Of course I restored /var/imap before every try...)
> 
> What am I missing?

My experience during the time when I had to upgrade from db 4.1.25 to
4.2.52 was that the log file was always in the way and I had to come up
with a way to get rid of it.

---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list