[Postfixbuch-users] OT: cyyrus backup & restore?

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Fr Apr 28 13:39:52 CEST 2006


Marcel Hartmann wrote:
> Hallo Sandy,
> 
>> Cyrus verwendet mehrere Datenbanken. Kläre mal folgende Punkte ab:
>>
>> - Wie ist Cyrus Konfiguriert:
>> 	-> Sichere etc/imapd.conf, /etc/cyrus.conf
>>
>> - Wie werden User von Cyrus authentifiziert:
>> 	-> Sichere diese Datenbank (etc/passwd, shadow, groups| sasldb)
>> 	-> Sichere saslauthd-konfig, PAM-Konfig, Sasldb
>> 	-> SQL: mache einen Dump der Datenbank vor Backup
>>
>> - Sichere die Cyrus-Datenbanken als Plaintext:
>> 	-> mailboxes.db, deliver.db /user/../seen.db
>> 	-> SQL: mache einen Dump der Datenbank vor Backup
> 
> Diese ganzen Daten zu sichern ist ja wenger das Problem, natürlich habe ich
> diese berücksichtigt!
> Mein Auth liegt in der MySQL Datenbank, welche auch gedumpt wird. Die
> Mailboxex.db etc. liegen bei
> mir alle in /var/lib/imap, sollten also auch mit der sicherung abgedeckt
> sein, wenn ich /var/spool/imap
> und /var/lib/imap sichere.

mailboxes.db ist eine hash-Datenbank, welche auf Berkeley-DB zurückgreift. 
Wenn diese BDB nicht kompatibel ist mit der Version, die auf dem neu 
aufgesetzten System existiert, dann kann Cyrus die Datenbanken nicht 
nutzen, das System steht. Das gleiche gilt für die seen.db und deliver.db, 
welche z.B. von sieve-vacation genutzt wird.
Kritisch ist die mailboxes.db, ohne diese Datenbank läuft Cyrus nicht, 
bzw. kann keine Mails zustellen. Jeder angelegte Ordner ist für Cyrus eine 
  Mailbox, deshalb sollte der Sicherungszyklus dies auch berücksichtigen.

>>> Un beim wieder einspielen des backups muss dann doch 
>> nachdem er die daten
>>> wieder rein kopiert bekommen hat, ein reconstruct der DB 
>> machen? Oder sehe
>>> cih das falsch.

Wenn der Stand der Datenbank mit dem Inhalt der Ordner genau 
übereinstimmt, dann ist nichts weiter zu machen. Das System ist dann in 
einem konsistenten Zustand. Um genau das zu erreichen, verwenden viele 
Cyrus-Admins das Snapshot-Feature von LVM für das Backup.

>> Ohne die Datenbanken: auf gleiche Distro/Cyrus/BDB-Version 
>> zurückspielen, 
>> reconstruct und beten.
> 
> Aber wenn ich die DBs mit sichere und wieder zurück kopiere, dann braucht er
> kein reconstruct?
> Dann wäre reconstruct nur notwendig, wenn man den /var/spool/imap verändert
> notwendig? Fein ;-)

Reconstruct ist dann notwendig, wenn Datenbank und Ordnerinhalt sich 
unterscheiden. Wenn du es dir erlauben kannst, dann fahre Cyrus runter für 
die Sicherung, mache das Backup, und fahre Cyrus hoch. Dann hast du einen 
sauberen Snapshot von Cyrus.
Wenn das nicht in Frage kommt, weil das System 24/7 laufen muss, dann 
setze LVM mit Snapshots für die Sicherung ein.

>> Mit Plaintext-Sicherung funktioniert auch der Import in eine andere 
>> Distro, mit anderer Berkeley-DB etc.
> 
> Plaintext sicherung? Wie meinst Du dies? Also nur den spool ordner sichern,
> auf das neue System legen
> und mit reconstruct die DBs erzeugen lassen? Dann würde er ja die dort
> verwendete berkeley Version nutzen etc.

Auf meinem Suse-System:

su - cyrus

# backup seen databases
for file in `find /var/lib/imap/user -name \*.seen`; do
    /usr/lib/cyrus/bin/cvt_cyrusdb $file skiplist $file.txt flat
       done

Auf dem Suse-System kommt als Default direkt dieses Backup der mailboxes.db:

#
# Copyright (c) 2003 SuSE Linux AG. Nuernberg, Germany.
#
BACKUPDIR=/var/lib/imap/backup

backup_name() {
     suffix=$(date +%Y-%m-%d)
     serial=00
     backupfile="$BACKUPDIR/mailboxes.txt.$suffix.$serial.gz"
     while [ -f $backupfile ]; do
         serial=$(printf "%02d" $(expr $serial + 1))
         backupfile="$BACKUPDIR/mailboxes.txt.$suffix.$serial.gz"
     done
     echo $backupfile
}

# ---------------------- MAIN -------------------

test -d $BACKUPDIR || mkdir -m 700 $BACKUPDIR
chown cyrus.mail $BACKUPDIR

bakfile=$(backup_name)
rm -f $bakfile
su - cyrus -c 'ctl_mboxlist -d' | gzip -9 -c > $bakfile
chown cyrus.mail $bakfile
chmod 640 $bakfile


Wie oft du eine Sicherung der mailboxes.db brauchst, hängt davon ab wie 
oft Ordner angelegt werden und wieviele Mails durchgehen.


Sandy




Mehr Informationen über die Mailingliste Postfixbuch-users