Data-Stash数据快速同步
操作流程
扩容一个新节点并将其将入到群组中参考
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/add_new_node.html?highlight=%E6%96%B0%E8%8A%82%E7%82%B9#id1
注:
请在要同步数据的节点上执行以下步骤,同步前新节点保持在未启动状态,并清空节点data目录。
- 获取启动脚本和配置文件
curl -#LO https://github.com/WeBankBlockchain/Data-Stash/releases/download/V1.2.0/data-sync-bash.tar.gz
如果因为网络问题导致长时间无法下载,请尝试:
Curl-#LO https://gitee.com/WeBankBlockchain/Data-Stash/attach_files/730064/download/data-sync-bash.tar.gz
- 解压文件包至当前目录
tar -zxvf data-sync-bash.tar.gz && cd data-sync-bash && chmod -x data_sync.sh
data-sync目录下包括config.conf 和 data-sync.sh 两个文件: config.conf为配置文件,数据仓库数据源配置。data-sync为启动脚本。
- 配置文件
修改config.conf文件:该文件包含了所有的配置信息。以下配置信息是必须要配置的:
[stash]stash.ip=127.0.0.1
stash.port=3306
stash.dbname=stash
stash.username=root
stash.password=123456
[node]#要导出的群组ID,会根据配置读取节点目录conf/下指定group.id.ini配置,进行数据同步
node.groupId=1#节点路径,若选择在fisco对应节点目录下(如~/fisco/nodes/127.0.0.1/node0)执行下述步骤,则无需配置节点路径,默认即可。
node.path=./
[more]#同步截止区块号,如默认为10000,则同步0-9999号区块至新节点,后续区块将从其他节点同步拉取sync.endBlockNumber=10000
- 启动脚本
bash data_sync.sh
上述脚本会自动拉取对应系统的data-sync包,并自动读取节点群组的配置,同步数据到对应的节点存储源中,节点存储模式包括rocksdb/mysql/scalable三种。rocksdb/mysql模式同步数据包括区块和状态数据。scalable模式下,只同步状态数据,区块数据需要通过数据仓库获取,参考数据裁剪查询
看到如下日志,则表示执行成功:
[2021-04-29 15:08:24][1/34] processing _sys_tables_
[2021-04-29 15:08:24.287430] [0x00000001056c45c0] [trace] [STORAGE]conversion end!
[2021-04-29 15:08:24.296431] [0x00000001056c45c0] [debug] [STORAGE][RocksDB][Commit]Write to db,encodeTimeCost=1,writeDBTimeCost=8,totalTimeCost=9
[2021-04-29 15:08:24][1/34] _sys_tables_ downloaded items : 34 done.
[2021-04-29 15:08:24][2/34] processing _sys_hash_2_block_
[2021-04-29 15:08:24.322570] [0x00000001056c45c0] [trace] [STORAGE]conversion table data,table name=_sys_hash_2_block_,new entry count=50,dirty entry count=0
[2021-04-29 15:08:24.325145] [0x00000001056c45c0] [trace] [STORAGE]conversion end!
[2021-04-29 15:08:24.330759] [0x00000001056c45c0] [debug] [STORAGE][RocksDB][Commit]Write to db,encodeTimeCost=4,writeDBTimeCost=1,totalTimeCost=5
如节点群组1的配置为RocksDB模式,则同步后的数据可在节点data/group1/block/RocksDB/路径下看到,如下文件:
ls data/
000006.log 000007.sst CURRENT IDENTITY LOCK LOG MANIFEST-000008 OPTIONS-000005