管理复制节点
ALTER CLUSTER <cluster_name> UPDATE nodes
语句更新指定集群中每个节点的节点列表,以包含集群中的所有活动节点。有关节点列表的更多信息,请参阅 加入集群。
SQL:
ALTER CLUSTER posts UPDATE nodes
POST /cli -d "
ALTER CLUSTER posts UPDATE nodes
"
$params = [
'cluster' => 'posts',
'body' => [
'operation' => 'update',
]
];
$response = $client->cluster()->alter($params);
Python:
utilsApi.sql('ALTER CLUSTER posts UPDATE nodes')
{u'error': u'', u'total': 0, u'warning': u''}
Javascript:
res = await utilsApi.sql('ALTER CLUSTER posts UPDATE nodes');
{"total":0,"error":"","warning":""}
java:
utilsApi.sql("ALTER CLUSTER posts UPDATE nodes");
C#:
utilsApi.Sql("ALTER CLUSTER posts UPDATE nodes");
例如,当集群最初建立时,用于重新加入集群的节点列表为 10.10.0.1:9312,10.10.1.1:9312
。之后,其他节点加入了集群,现在活动节点为 10.10.0.1:9312,10.10.1.1:9312,10.15.0.1:9312,10.15.0.3:9312
。然而,用于重新加入集群的节点列表并未更新。
为了解决这个问题,可以运行 ALTER CLUSTER ... UPDATE nodes
语句,将活动节点列表复制到用于重新加入集群的节点列表中。执行后,重新加入集群的节点列表将包括集群中的所有活动节点。
两个节点列表可以使用 集群状态 语句查看(cluster_post_nodes_set
和 cluster_post_nodes_view
)。
从集群中移除节点
要从复制集群中移除节点,请按照以下步骤操作:
停止该节点。
从已停止节点的
<data_dir>/manticore.json
(通常是/var/lib/manticore/manticore.json
)中删除集群信息。在任何其他节点上运行
ALTER CLUSTER cluster_name UPDATE nodes
。
完成这些步骤后,其他节点将忘记已断开的节点,而已断开的节点将忘记该集群。此操作不会影响集群中的表或已断开的节点上的表。
最后更新于