Ошибка в резервном копировании ZODB
У меня есть индикатор 0,92, и мы сохраняем его с помощью ZODB.
Эта программа запускается много раз, внезапно резервное копирование перестает работать с ошибками:
No handlers could be found for logger "ZODB.FileStorage"
Traceback (most recent call last):
File "/usr/local/.../ZODB3-3.4.2/build/scripts-2.4/repozo.py", line 517, in ?
main()
File "/usr/local/.../ZODB3-3.4.2/build/scripts-2.4/repozo.py", line 510, in main
do_backup(options)
File "/usr/local/.../ZODB3-3.4.2/build/scripts-2.4/repozo.py", line 478, in do_backup
do_incremental_backup(options, reposz, repofiles)
File "/usr/local/.../ZODB3-3.4.2/build/scripts-2.4/repozo.py", line 378, in do_incremental_backup
fs = FileStorage(options.file, read_only=True)
File "build/lib.linux-x86_64-2.4/ZODB/FileStorage/FileStorage.py", line 163, in __init__
File "build/lib.linux-x86_64-2.4/ZODB/FileStorage/FileStorage.py", line 1697, in read_index
File "build/lib.linux-x86_64-2.4/ZODB/FileStorage/FileStorage.py", line 52, in panic
ZODB.FileStorage.FileStorage.CorruptedTransactionError: %s has invalid transaction header at %s
Есть идеи, что может привести к прекращению работы резервной копии ZODB?
Shlomit
2 ответа
Я не очень знаком с ZODB.
У меня нет резервной копии в течение нескольких дней, и я боюсь, что, если я восстановлю ее из моей последней резервной копии, пользователи потеряют данные. Является ли 'ZODB filestorage' общими файлами и не подключается к данным пользователей?
Как я уже сказал, я не знаком с этим, можете ли вы дать более подробную информацию, как я могу сделать это безопасно? Я не хочу портить вещи.
Большое спасибо,
Shlomit
Думаю, я бы положил сюда какую-нибудь информацию для усталых путешественников из будущего. Если вы видите вышеупомянутую ошибку, то файл Data.fs поврежден. Из того, что я могу сказать, единственный способ заставить zope начать заново - запустить fsrecover.py через него: https://github.com/zopefoundation/ZODB/blob/master/src/ZODB/fsrecover.py
Приведенный выше файл, по сути, просто удалит все поврежденные данные, но, по крайней мере, вы снова будете работать.
Удачи!