Резервное копирование базы данных LMDB от Hyperledger Sawtooth

У меня есть подключенная к сети пилообразная сеть 1.1, и я пытаюсь сделать резервную копию базы данных с помощью валидаторов, чтобы я мог закрыть каждый контейнер и затем восстановить в случае аварии.

Пытаясь добиться этого, я действую следующим образом:

  1. Остановили все контейнеры;
  2. Резервное копирование всех файлов одного из валидаторов в / var / lib / sawtooh / using

    cp --sparse = всегда [файл] [file_backup]

  3. Удалены все контейнеры с помощью docker-compose down

  4. Начал новую сеть с docker-compose

  5. Остановил все контейнеры с помощью docker-compose stop

  6. Скопируйте файлы, зарезервированные на шаге 2, в новые валидаторы, используя команду того же шага

  7. Перезапустил всю сеть, используя docker-compose restart

После этого я мог бы исправить, что состояния были правильными, пользователи в блокчейне имеют тот же баланс, что и до docker-compose down. Но блокчейн не обрабатывает новые транзакции. Единственная ошибка, которую я обнаружил в журналах, была в sawtooth-поэта-движке, который, по моему мнению, во время консенсуса, показанного на этом изображении, ERROR_IMAGE.

Итак, мой вопрос: кто-нибудь пытался сделать это с успехом или есть представление о том, что я делаю неправильно?

1 ответ

Я просто попробовал то же самое, и это сработало для меня. Одна из возможных проблем - права доступа к файлам и право собственности. Использовать cp -p Возможность сохранения прав собственности и разрешений:

cp -p --sparse=always [file] [file_backup]

Также проверьте правильность владения и прав с ls -l /var/lib/sawtooth, Все они должны быть доступны для чтения / записи владельцем и принадлежать пользователю / группе sawtooth. Если нет, исправьте владение чем-то вроде

chown sawtooth:sawtooth /var/lib/sawtooth /var/lib/sawtooth/* chmod u+rw /var/lib/sawtooth /var/lib/sawtooth/* chmod ugo+r /var/lib/sawtooth/block-* /var/lib/sawtooth/txn_receipts-00.lmdb*

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