1

我有一个锯齿 1.1 dockerized 网络,我正在尝试从验证器备份数据库,以便我可以放下每个容器,然后在发生灾难时恢复。

为了实现这一点,我按照以下方式进行:

  1. 停止所有容器;
  2. 使用/var/lib/sawtooh/备份其中一个验证器的所有文件

    cp --sparse=always [文件] [文件备份]

  3. 使用docker-compose down删除所有容器

  4. 使用docker-compose up启动了一个全新的网络

  5. 使用docker-compose stop停止所有容器

  6. 使用同一步骤的命令将步骤 2中备份的文件复制到新的验证器

  7. 使用docker-compose restart 重新启动所有网络

在此之后,我可以修复状态是正确的,区块链上的用户具有与 docker-compose down 之前相同的余额。但区块链不处理新交易。我在日志中发现的唯一错误是锯齿诗人引擎 ,我相信在共识过程中它显示在这张图片 ERROR_IMAGE 上

所以我的问题是,有没有人试图成功地做到这一点,或者知道我做错了什么?

4

1 回答 1

1

我只是尝试了同样的事情,它对我有用。一个可能的问题是文件权限和所有权。使用该cp -p选项保留所有权和权限:

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

还要使用 验证所有权和权限是否正确ls -l /var/lib/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*

于 2019-02-26T21:43:52.280 回答