CnosDB v2.3.3迁移至v2.4.0失败:启动时提示TenantNotFound
CnosDB v2.3.3 升级至v2.4.0(单例模式)迁移失败求助
本地笔记本同时安装CnosDB v2.3.3与v2.4.0版本,按官方升级流程操作后,重启v2.4.0实例时启动崩溃,报错提示租户"cnosdb"未找到,具体操作及报错信息如下:
操作流程
- 启动v2.3.3实例,执行元数据导出命令:原命令
curl -XGET http://ip:port/debug --o ./meta_dump.data因--o选项错误失败,改为-o后成功生成meta_dump.data,随后编辑该文件,删除首尾行并移除每行首字符*。 - 停止v2.3.3实例,修改端口后启动v2.4.0实例,执行元数据导入命令
curl -XPOST http://ip:port/restore --data-binary "@./meta_dump.data",返回提示“Restore Data Success, Total: 18 %”。 - 停止v2.4.0实例,重新启动v2.3.3实例,执行SQL导出数据:
-- 在v2.3.3终端执行 public ❯ COPY INTO 'file:///tmp/data_dump.data' FROM table_1 FILE_FORMAT = (TYPE = 'PARQUET'); +--------+ | rows | +--------+ | 406727 | +--------+
启动报错日志
重启v2.4.0实例准备导入数据时,实例崩溃,日志如下:
---------- 2023-10-30T00:03:33.305641000+08:00 INFO meta::service::single: single meta http server start addr: 127.0.0.1:8901 2023-10-30T00:03:33.307614000+08:00 INFO meta::service::single: watch all args: client-id: watch.1001, cluster: cluster_xxx, tenants: {}, version: 54 2023-10-30T00:03:33.307647000+08:00 INFO meta::store::storage: METADATA WRITE(ver: 55): /cluster_xxx/data_nodes/1001 :{"id":1001,"grpc_addr":"localhost:8903","http_addr":"localhost:8902","attribute":"Hot"} 2023-10-30T00:03:33.308157000+08:00 INFO meta::store::storage: METADATA WRITE(ver: 56): /cluster_xxx/data_nodes_metrics/1001 :{"id":1001,"disk_free":475465846784,"time":1698595413,"status":"Healthy"} 2023-10-30T00:03:33.308574000+08:00 INFO meta::service::single: watch all args: client-id: watch.1001, cluster: cluster_xxx, tenants: {}, version: 56 2023-10-30T00:03:33.308839000+08:00 INFO tskv::kvcore: Summary task handler started 2023-10-30T00:03:33.308865000+08:00 INFO tskv::compaction::job: Compaction: start merge compact task job 2023-10-30T00:03:33.308871000+08:00 INFO tskv::compaction::job: Compaction: start vnode compaction job 2023-10-30T00:03:33.308875000+08:00 INFO tskv::compaction::job: Compaction: enable_compaction is false, later to start vnode compaction job 2023-10-30T00:03:33.308881000+08:00 INFO tskv::compaction::job: Flush task handler started 2023-10-30T00:03:33.308884000+08:00 INFO tskv::kvcore: Job 'WAL' starting. 2023-10-30T00:03:33.308902000+08:00 INFO tskv::kvcore: Job 'WAL' started. 2023-10-30T00:03:33.309962000+08:00 INFO meta::store::storage: METADATA WRITE(ver: 57): /cluster_xxx/data_nodes_metrics/1001 :{"id":1001,"disk_free":475465846784,"time":1698595413,"status":"Healthy"} 2023-10-30T00:03:33.310037000+08:00 INFO meta::service::single: watch notify watch.1001 56.56 2023-10-30T00:03:33.310321000+08:00 INFO meta::service::single: watch all args: client-id: watch.1001, cluster: cluster_xxx, tenants: {}, version: 57 2023-10-30T00:03:33.310336000+08:00 WARN models::runtime::executor: DedicatedExecutor dropped without waiting for worker termination The application panicked (crashed). Message: make dbms: Meta { source: TenantNotFound { tenant: "cnosdb" } } Location: main/src/server.rs:262
解决方案建议
- 校验元数据完整性
- 检查编辑后的
meta_dump.data文件,确认是否包含cnosdb租户的元数据条目(格式类似/cluster_xxx/tenants/cnosdb : {...})。若编辑时误删该条目,会导致导入后元数据缺失。 - 重新导出元数据,对比原文件与编辑后的内容,确保租户、数据库、表的元数据未被误删。
- 检查编辑后的
- 重新导入元数据
- 清理v2.4.0实例的元数据存储目录(路径参考配置文件中的
meta_dir字段),然后重新执行元数据导入命令,确保完整导入所有元数据。
- 清理v2.4.0实例的元数据存储目录(路径参考配置文件中的
- 手动创建缺失租户
- 若元数据导入无法恢复
cnosdb租户,可尝试先启动v2.4.0的元数据服务,通过CLI执行CREATE TENANT cnosdb;手动创建租户,再重新导入元数据与数据。
- 若元数据导入无法恢复
- 对齐版本配置
- 对比v2.3.3与v2.4.0的配置文件,确保默认租户名称等核心配置一致,避免因配置差异导致启动时无法识别租户。
内容的提问来源于stack exchange,提问作者Darts
相关产品推荐
相关产品推荐

