我的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
但这样连上后,通过这台机器的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的报错
想请教下大佬们,这种情况为啥会产生,是因为之前fe拷元数据的方式有问题吗?还有怎么修复啊?