Eine Ebene höher
Frage
Wie kann ich bei einer inkonsistenten oder kaputten ZODB auf einen alten
Stand zurücksetzen?
Antwort
Methode 1:
- Backup einfahren :-)
Methode 2:
- Falls die Data.fs noch nicht gepackt wurde, kann man durch Abschneiden eines Teils der Data.fs am Ende die jeweils letzten Transaktionen wegwerfen (bei Änderungen in der ZODB werden diese immer an das Ende der ZODB angehängt).
- Zope beenden
- verschossene Data.fs sichern
- Python Interpreter im Verzeichnis, in dem sich die
Data.fsbefindet, starten:import os fd = os.open('Data.fs', os.D_WRONLY') os.ftruncate(fd, XXXXXXXXXX) fd.close(fd) - Der Parameter XXXXXXX ist die Anzahl der Bytes auf die die Data.fs gestutzt werden soll. Hier heisst es nur ausprobieren und zu variieren bis man einen älteren Stand gefunden hat, mit dem man wieder arbeiten kann.
- Zope hochfahren und untersuchen, ob man den gewünschten Stand gefunden
- Falls nein, Backup der Data.fs noch mal als
Data.fseinspielen und Vorgang mit anderem Wert für XXXXXX wieder holen.