Ошибка в резервном копировании 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

Приведенный выше файл, по сути, просто удалит все поврежденные данные, но, по крайней мере, вы снова будете работать.

Удачи!

Другие вопросы по тегам