Banner

Cyrus Datenbank nach Lucid Upgrade

Heute habe ich nun auch meinen Server auf Lucid upgegradet. Beim Upgrade bekam ich folgende Meldung:

 
│ Datenbankanbindungen geändert
│ Ein Vergleich der Dateien /usr/lib/cyrus/cyrus-db-types.txt und
│ /usr/lib/cyrus/cyrus-db-types.active zeigt, dass die
│ Datenbankanbindungen des Cyrus IMAPd geändert wurden.
│ Die Datenbanken, für die sich die Anbindung geändert hat, müssen mit dem
│ Hilfsprogramm cvt_cyrusdb(8) gegebenenfalls manuell in das neue Format
│ überführt werden.
│ Mehr Informationen finden Sie in der Datei
│ /usr/share/doc/cyrus-common-2.2/README.Debian.database. Starten Sie
│ keinesfalls »cyrmaster«, bevor Sie die Datenbank in das neue Format
│ überführt haben.

 

Das Problem

Also soll ich die Berkley/Cyrus Datenbanken upgraden. In der Datei /usr/share/doc/cyrus-common-2.2/README.Debian.database steht folgendes:

After converting all the mail stores and /var/lib/cyrus to use the proper
database backends using cvt_cyrusdb(8), remove/usr/lib/cyrus/cyrus-db-types.active
and run "dpkg-reconfigure cyrus-common-2.2"once to reset the error trigger, and start cyrmaster
.If cvt-cyrusdb locks up just at the beginning of the conversion, your databasesmight be locked.
Unlock them (i.e. REALLY stop Cyrus if it is still running,
use the db* utilities (from the older Berkeley DB version) to clean any straylocks, or try a reboot).

Also Vergleich der Datenbankversionen:

diff -u /usr/lib/cyrus/cyrus-db-types.active \
/usr/lib/cyrus/cyrus-db-types.txt'

gibt nun  folgendes aus:

--- /usr/lib/cyrus/cyrus-db-types.active    2009-10-08 21:41:23.000000000 +0200
+++ /usr/lib/cyrus/cyrus-db-types.txt    2010-03-29 17:04:47.000000000 +0200
@@ -1,5 +1,5 @@
ANNOTATION skiplist
-DBENGINE BerkeleyDB4.3
+DBENGINE BerkeleyDB4.7
DUPLICATE berkeley-nosync
MBOX skiplist
PTS berkeley

Demnach wurde die Datenbank von 4.3 auf 4.7 geändert. Nun soll man die mit dem db4.7-util (beinhaltet db4.7_upgrade) upgraden und zwar alle. Dazu muss man erst das Paket db4.7-util installieren:

sudo apt-get install db4.7-util

 

Wenn du der Anleitung folgst, solltest du nun ein Backup von diesen Orten machen:

  • /var/spool/cyrus
  • /var/lib/cyrus

 

Hä?

Mit /var/lib/cyrus/deliver.db funktioniert das Ganze noch:

db4.7_upgrade -v /var/lib/cyrus/deliver.db
db4.7_upgrade: /var/lib/cyrus/deliver.db upgraded successfully

..nur /var/lib/cyrus/mailboxes.db will schon nicht mehr:

db4.7_upgrade -v /var/lib/cyrus/mailboxes.dbdb4.7_upgrade: /var/lib/cyrus/mailboxes.db: unrecognized file type
db4.7_upgrade: DB->upgrade: /var/lib/cyrus/mailboxes.db: Invalid argument

Zusätzlich existieren bei mir ja noch die Datenbank PTS berkeley.

 

Die Lösung

Also weitergegoogelt.
Irgendwann habe ich dann entdeckt, dass man alle Datenbanken ganz leicht mit:

db4.7_recover -h . -e

umwandeln kann. Hier den genauen Ablauf:

sudo -s
cd /var/lib/cyrus
db4.7_recover -h . -e
rm -r tls_sessions.db                                               #optional
rm /usr/lib/cyrus/cyrus-db-types.active               
dpkg-reconfigure cyrus-common-2.2

Ich hoffe ich konnte euch helfen. Ich zitiere:

WHY THERE IS NO AUTOMATED UPGRADE SCRIPT:  Because we are quite short on time
lately: it is much faster to write a doc than to write and test the script.

...und hoffe für jeden anderen Cyrus User:

Maybe someone will write one (We will certainly include it in the package, if
it is good enough).  Don't hold your breath, though.


RSSfeed

Hat dir dieser Artikel weiter geholfen? Abonniere neue Beiträge dieses Blogs per RSS-Feed.

Bist du an der Entwicklung dieses Projektes interessiert? Dann folge uns doch auf Twitter!

Der Autor dieses Beitrags würde sich sehr freuen, wenn du ihm einen Kommentar hinterlassen würdest.

Kommentar schreiben


Sicherheitscode
Aktualisieren

Anmelden

Suche

Neuste Kommentare

RSS
Copyright © 2009-2016 mein.homelinux.com

Creative Commons License