Manager 查看/修改元数据的操作步骤
一、背景
- manager目前没有提供任务取消等功能,所以目前会造成任务长时间停滞,需要手动修改元数据中的任务状态;
- manager有时会被某些旧的bug导致集群或者节点状态不正确,也需要手动修改元数据。
这里先简单给运维同学展示一下如何在数据库中修改集群和任务的状态
二、登录数据库
manager.conf配置文件里面支持用户配置2种不同的数据库类型,一种是mysql, 一种是内置的h2嵌入式数据库
Mysql 数据库
mysql数据库连接的方式比较多且常见,这里不做介绍
H2 数据库
登录H2数据库稍微复杂一点,下面主要介绍H2的登录方式
开启 H2 的访问
从 Doris Manager 的 23.11.9 和 24.0.3 版本开始,默认不开启H2的访问方式
-
编辑
webserver/conf/manager.conf文件,找到H2_CONSOLE_ENABLE字段(未找到则新增),设置为 TRUE 则开启 H2 数据库的访问H2_CONSOLE_ENABLE = TRUE -
重启 webserver 组件
登录 H2 数据库
浏览器访问 http://{ManagerIP}:{ManagerPort}/h2-console 即可找到 H2 数据库的控制台,其中 ManagerIP 就是manager对应的IP,ManagerPort对应 webserver/conf/manager.conf 文件里面的 MANAGER_PORT 字段,默认为 8004
下图即是H2的控制台

- JDBC URL:
jdbc:h2:{webserver_deploy_dir}/data/data,其中webserver_deploy_dir就是webserver的部署目录的绝对路径(PS:如果你在manager.conf里面显示设置了DATA_PATH字段,那么JDBC URL的值为jdbc:h2:{DATA_PATH}/data) - Password: 如果你的manager版本是23.11.9 之前或者 24.0.3 之前,则填写
123456789;反之填写manager@selectdb
三、查看集群ID
Manager 相关的元数据大部分都跟集群有关,所以在更改/查询数据库之前,最好找到自己当前集群的ID
集群信息表名为
clusters
集群ID最快捷的查询方式是直接在manager的页面上面找到,比如以下图片中的78就是当前集群的ID

四、任务取消
用户登录mysql或者H2数据库之后,可以找到JOBS这张表(下图是H2数据库中的展示界面)

找到任务表
点击表名中间输入框会自动出现查询语句,点击Run即可;

找到任务ID
下滑到页面的最底部,最近的任务一般就是最后一条记录,第一列即为任务的ID

修改任务状态
直接在输入框中输入SQL语句(一般选择第一条sql即可),点击Run即可
// 将任务置为成功
update jobs set status = 'Success' where id = 具体ID;
// 将任务置为失败
update jobs set status = 'Fail' where id = 具体ID;
重启webserver
上面修改了数据库内容,但是webserver进程里面还是用的缓存信息,所以需要重启webserver
到manager的部署目录,找到webserver目录
- sh bin/stop.sh 停止进程
- sh bin/start.sh 启动进程
五、重置集群状态
用户在缩容、升级等操作中,可能会因为旧版本的一些bug, 导致集群状态一直不是正常状态(Running),这里需要手动修改集群状态
下图就是一个典型的例子,界面上的集群一直处于"缩容中"状态,导致其他操作(如集群升级、集群重启等)不可执行
找到集群表
同样的方式,找到集群表CLUSTERS

直接在输入框里面使用sql语句
update clusters set status = 'Running' where id = 具体的集群ID;

重启webserver
上面修改了数据库内容,但是webserver进程里面还是用的缓存信息,所以需要重启webserver
到manager的部署目录,找到webserver目录
- sh bin/stop.sh 停止进程
- sh bin/start.sh 启动进程
六、重置节点状态
下图也是一个典型的例子,界面上的集群一直处于"缩容中"状态,导致其他操作(如集群升级、集群重启等)不可执行。同时节点状态一直为非正常状态
找到节点表

输入sql语句
update cluster_nodes set status = 'Running' where cluster_id = 具体的集群ID(比如1);
重启webserver
上面修改了数据库内容,但是webserver进程里面还是用的缓存信息,所以需要重启webserver
到manager的部署目录,找到webserver目录
- sh bin/stop.sh 停止进程
- sh bin/start.sh 启动进程
七、停止巡检任务
找到巡检任务表

SELECT * FROM INSPECTION_JOBS order by created_at desc;
# 这样第一条记录就是最新的巡检任务,记住ID
修改任务状态
update INSPECTION_JOBS set status = 'Success' where id = $ID;
重启webserver即可

