[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