Резервное копирование базы данных LMDB от Hyperledger Sawtooth
У меня есть подключенная к сети пилообразная сеть 1.1, и я пытаюсь сделать резервную копию базы данных с помощью валидаторов, чтобы я мог закрыть каждый контейнер и затем восстановить в случае аварии.
Пытаясь добиться этого, я действую следующим образом:
- Остановили все контейнеры;
Резервное копирование всех файлов одного из валидаторов в / var / lib / sawtooh / using
cp --sparse = всегда [файл] [file_backup]
Удалены все контейнеры с помощью docker-compose down
Начал новую сеть с docker-compose
Остановил все контейнеры с помощью docker-compose stop
Скопируйте файлы, зарезервированные на шаге 2, в новые валидаторы, используя команду того же шага
Перезапустил всю сеть, используя 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*