0 • ajhdf • 9个月前 • 216次点击
使用antdb数据库,出现“ERROR: No Datanode defined in cluster”提示,这该怎么解决?
解决方式
登录coordinator执行select * from pgxc_node,检查是否存在node_type=D 的节点信息。执行select pgxc_pool_reload() 重新加载pgxc_node信息之后,重新执行上述的查询。若仍然没有node_type=D 的节点信息,则需要重新init集群。或若登录adbmgr执行monitor all,显示所有节点均为running状态,也可以手工初始化pgxc_node表的信息,但比较麻烦。
重新初始化集群的步骤:登录adbmgr操作
stop all mode fast;clean all;init all;
手工添加pgxc_node表的初始化信息的步骤:登录每个coordinator操作
--创建一个coordinator的节点信息create node ${node_name} with (type=coordinator, host='${node_ip}', port=${node_port}, primary=false);
--创建第一个datanode master的节点信息(datanode slave不需要初始化)create node ${node_name} with (type=datanode, host='${node_ip}', port=${node_port}, primary=true);--创建其他datanode master的节点信息(datanode slave不需要初始化)create node ${node_name} with (type=datanode, host='${node_ip}', port=${node_port}, primary=false);
注:该方式比较原始,不建议这样操作。
原因说明
init all初始化集群时,agtm没有正常初始化,导致各个节点在初始化pgxc_node时,向agtm获取事务号失败,导致pgxc_node该表初始化异常。
积分:40
解决方式
登录coordinator执行select * from pgxc_node,检查是否存在node_type=D 的节点信息。
执行select pgxc_pool_reload() 重新加载pgxc_node信息之后,重新执行上述的查询。
若仍然没有node_type=D 的节点信息,则需要重新init集群。
或若登录adbmgr执行monitor all,显示所有节点均为running状态,也可以手工初始化pgxc_node表的信息,但比较麻烦。
重新初始化集群的步骤:
登录adbmgr操作
stop all mode fast;
clean all;
init all;
手工添加pgxc_node表的初始化信息的步骤:
登录每个coordinator操作
--创建一个coordinator的节点信息
create node ${node_name} with (type=coordinator, host='${node_ip}', port=${node_port}, primary=false);
--创建第一个datanode master的节点信息(datanode slave不需要初始化)
create node ${node_name} with (type=datanode, host='${node_ip}', port=${node_port}, primary=true);
--创建其他datanode master的节点信息(datanode slave不需要初始化)
create node ${node_name} with (type=datanode, host='${node_ip}', port=${node_port}, primary=false);
注:该方式比较原始,不建议这样操作。
原因说明
init all初始化集群时,agtm没有正常初始化,导致各个节点在初始化pgxc_node时,向agtm获取事务号失败,导致pgxc_node该表初始化异常。