Failed to get scan range, no queryable replica found in tablet

Viewed 48

我的doris在3台机器上,每台机器各一个be和fe,都用docker-compose设置了开机启动。其中一台机器重启后,可能是挂载没完成,重启的fe没有获取到metadata,自己单独起了一个frontend,元数据里/image/VERSION 的clusterId也变了。执行show frontends时,这台机器也显示连不上。所以我只好把其他机器的doris_meta拷到这台机器上,然后修改/image/ROLE的name, 使其和show frontends时展示的ClusterId相匹配,之后再重启这台机器的fe就连上了。

复制元数据后的启动方式是docker-compose start docker-fe-01。下图是启动的yaml
image.png

但这样连上后,通过这台机器的ip连doris,执行各种sql时,对应部分表会有Failed to get scan range, no queryable replica found in tablet的报错。但通过两外两台机器的ip登陆时,执行相同sql就没有问题。之后尝试按doris文档里,用ADMIN SET FRONTEND CONFIG ("recover_with_empty_tablet" = "true");命令来修复,也仍然有这个问题。

下图是通过ADMIN SET FRONTEND CONFIG ("recover_with_empty_tablet" = "true"修复后的结果,isBad之前true,现在已经是false了,但仍然有no queryable replica的报错
image.png

想请教下大佬们,这种情况为啥会产生,是因为之前fe拷元数据的方式有问题吗?还有怎么修复啊?

1 Answers

这种拷贝元数据的方式是不可以的, 你可以直接清空这个fe的元数据,然后按照新增fe的形式加进来,元数据会自动同步的