Резервное копирование базы данных LMDB от Hyperledger Sawtooth - PullRequest
0 голосов
/ 26 февраля 2019

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

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

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

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

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

  4. Запустили новую сеть с docker-compose up

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

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

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

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

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

1 Ответ

0 голосов
/ 27 февраля 2019

Я просто попробовал то же самое, и это сработало для меня.Одна из возможных проблем - права доступа к файлам и право собственности.Используйте параметр 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*

...