在升级准备中解压 TAR 包的目的路径下,用此处bin目录中的新版二进制文件替换 NebulaGraph 安装路径下bin目录中的旧版二进制文件。
这是新meta的意思吧
在升级准备中解压 TAR 包的目的路径下,用此处bin目录中的新版二进制文件替换 NebulaGraph 安装路径下bin目录中的旧版二进制文件。
这是新meta的意思吧
2.6升级到3.3只需要替换二进制文件,并在meta中增加session_idle_timeout_secs、session_idle_timeout_secs配置项即可,具体步骤如下:
好吧。2.6->3.0/3.1/3.2是要工具升级
但2.6->3.3是直接替换二进制。
那他用快照升级为什么不行呢,为什么一启动就给删了,这是什么情况?
会不会是用docker的原因
我2.6的环境里面执行
./db_upgrader
–src_db_path=/usr/local/nebula/data/storage
–dst_db_path=/usr/local/nebula/data/storage-v3
–upgrade_meta_server=192.168.66.79:49232,192.168.66.79:49233,192.168.66.79:49228
–upgrade_version=2:3
–upgrade_meta_server=192.168.66.79:49232,192.168.66.79:49233,192.168.66.79:49228
这个meta服务地址是3.3的,只启动了meta服务和graph服务
执行的结果还是space not found
[root@nebula-cluster-storaged-3 bin]# ./db_upgrader --src_db_path=/usr/local/nebula/data/storage --dst_db_path=/usr/local/nebula/data/storage-v3 --upgrade_meta_server=192.168.66.79:49255,192.168.66.79:49259,192.168.66.79:49256 --upgrade_version=2:3
===========================PARAMS============================
meta server: 192.168.66.79:49255,192.168.66.79:49259,192.168.66.79:49256
source data path: /usr/local/nebula/data/storage
destination data path: /usr/local/nebula/data/storage-v3
The size of the batch written: 100
upgrade data from version: 2:3
whether to compact all data: true
maximum number of concurrent parts allowed:10
maximum number of concurrent spaces allowed: 5
===========================PARAMS============================
I20221222 06:59:57.406024 802 DbUpgraderTool.cpp:112] Prepare phase begin
I20221222 06:59:57.406349 802 MetaClient.cpp:80] Create meta client to "192.168.66.79":49259
I20221222 06:59:57.406359 802 MetaClient.cpp:81] root path: , data path size: 0
I20221222 06:59:57.441632 802 MetaClient.cpp:3108] Load leader of "storaged0":9779 in 0 space
I20221222 06:59:57.441723 802 MetaClient.cpp:3108] Load leader of "storaged1":9779 in 0 space
I20221222 06:59:57.441730 802 MetaClient.cpp:3108] Load leader of "storaged2":9779 in 0 space
I20221222 06:59:57.441732 802 MetaClient.cpp:3114] Load leader ok
I20221222 06:59:57.445302 802 MetaClient.cpp:162] Register time task for heartbeat!
I20221222 06:59:57.445322 802 DbUpgraderTool.cpp:171] Prepare phase end
I20221222 06:59:57.445325 802 DbUpgraderTool.cpp:174] Upgrade phase begin
I20221222 06:59:57.445528 810 DbUpgraderTool.cpp:185] Upgrade from path /usr/local/nebula/data/storage to path /usr/local/nebula/data/storage-v3 begin
I20221222 06:59:57.446424 810 DbUpgrader.cpp:1169] Upgrade from path /usr/local/nebula/data/storage to path /usr/local/nebula/data/storage-v3 in DbUpgrader run begin
E20221222 06:59:57.446447 810 MetaClient.cpp:1393] Space 806 not found!
E20221222 06:59:57.447206 810 DbUpgrader.cpp:76] Space id 806 no found
E20221222 06:59:57.447214 810 DbUpgrader.cpp:59] Init /usr/local/nebula/data/storage space id 806 failed
W20221222 06:59:57.447221 810 DbUpgrader.cpp:1180] Upgrade from path /usr/local/nebula/data/storage space id 806 to path /usr/local/nebula/data/storage-v3 init failed
W20221222 06:59:57.447224 810 DbUpgrader.cpp:1182] Ignore upgrade /usr/local/nebula/data/storage space id 806
E20221222 06:59:57.447232 810 MetaClient.cpp:1393] Space 0 not found!
E20221222 06:59:57.447238 810 DbUpgrader.cpp:76] Space id 0 no found
E20221222 06:59:57.447244 810 DbUpgrader.cpp:59] Init /usr/local/nebula/data/storage space id 0 failed
W20221222 06:59:57.447250 810 DbUpgrader.cpp:1180] Upgrade from path /usr/local/nebula/data/storage space id 0 to path /usr/local/nebula/data/storage-v3 init failed
W20221222 06:59:57.447254 810 DbUpgrader.cpp:1182] Ignore upgrade /usr/local/nebula/data/storage space id 0
E20221222 06:59:57.447259 810 MetaClient.cpp:1393] Space 796 not found!
E20221222 06:59:57.447265 810 DbUpgrader.cpp:76] Space id 796 no found
E20221222 06:59:57.447271 810 DbUpgrader.cpp:59] Init /usr/local/nebula/data/storage space id 796 failed
W20221222 06:59:57.447278 810 DbUpgrader.cpp:1180] Upgrade from path /usr/local/nebula/data/storage space id 796 to path /usr/local/nebula/data/storage-v3 init failed
W20221222 06:59:57.447283 810 DbUpgrader.cpp:1182] Ignore upgrade /usr/local/nebula/data/storage space id 796
E20221222 06:59:57.447288 810 MetaClient.cpp:1393] Space 609 not found!
E20221222 06:59:57.447293 810 DbUpgrader.cpp:76] Space id 609 no found
E20221222 06:59:57.447299 810 DbUpgrader.cpp:59] Init /usr/local/nebula/data/storage space id 609 failed
W20221222 06:59:57.447305 810 DbUpgrader.cpp:1180] Upgrade from path /usr/local/nebula/data/storage space id 609 to path /usr/local/nebula/data/storage-v3 init failed
W20221222 06:59:57.447309 810 DbUpgrader.cpp:1182] Ignore upgrade /usr/local/nebula/data/storage space id 609
I20221222 06:59:57.447314 810 DbUpgrader.cpp:1196] Max concurrent spaces: 0
I20221222 06:59:57.447316 810 DbUpgrader.cpp:1206] Upgrade from path /usr/local/nebula/data/storage to path /usr/local/nebula/data/storage-v3 in DbUpgrader run end
I20221222 06:59:57.447319 810 DbUpgraderTool.cpp:193] Upgrade from path /usr/local/nebula/data/storage to path /usr/local/nebula/data/storage-v3 end
I20221222 06:59:57.447429 802 DbUpgraderTool.cpp:202] Upgrade phase end
[root@nebula-cluster-storaged-3 bin]# ls /usr/local/nebula/data/storage
我把2.6的快照恢复到另外一个2.6的服务里面就不会被删,恢复到3.3的服务里面就会被删除
会不会是是我用的docker方式部署的服务,执行这些操作的时候都不能停机,所以我尝试用二进制包里的 binary upgrade 工具,放到2.6 storaged 里执行,期望是把数据升级成3.3的服务,然后把升级后的数据复制到3.3的服务中,试着去解决2.6的快照复制到3.3的服务中被删除的情况。
现在是第一步upgrade就不行,报space not found 但是我2.6的服务是正常的。
难道我需要用本地搭建一个2.6的服务,然后把快照备份到这个本地服务,然后升级本地服务到3.3,然后再把本地服务3.3的快照迁移到docker 3.3的服务里????
如果数据兼容,直接拉一份出来启动就行了
现在可能就是2.6的数据不兼容?我用快照去启动3.3的,其实是拉一份数据的操作是一样的啊
升级工具主要是为了生成tagless key,如果不使用tagless key的话,是无需使用升级工具的。
刚好3.3去除了tagless key,所以无需使用升级工具。
至于使用快照升级为什么不行,不是太确定,需要咨询一下客户具体的恢复步骤。
请问一下:
我刚刚试了下,相同配置下,把2.6的/data/storage0 的数据直接复制到3.3的data/storage0下面,启动3.3后就自动把数据删除了,只剩下0
我怀疑你的快照就算在另外一个 2.6 集群中启动了也不能用。
在 3.3 中启动就被删除是因为,meta 内有个关键元信息记录了 part → host list,而这个 host list 还是原来集群的 host list。所以在新的集群中启动起来后,每个 storage 拉取元信息的时候,会发现自己 host 没有 space,就会把本地的 space 都删掉。
这是因为 meta 的部分信息还能用
那我还有什么办法,来进行版本升级后的数据迁移啊?
可以停机原地升级吗?
我本地试验了一个方法,目前来说是有效的
把2.6的data复制到3.3的data
docker启动3.3的meta,meta没问题后,再用docker启动剩下的服务,发现数据都迁移好了,也能正常使用。