在8个节点的基准群集中,我们在分区模板中有数据而没有备份。假设我在SampleTable(@Cache)的所有8个节点中都有avg 28K条目。总数据= 28K * 8 = 224K条目。
CREATE TABLE SampleTable(....)WITH“template = partitioned”
现在我想关闭一个节点,在关闭之前我想将数据从第8个节点移动到其他节点,因此大约32K(32K * 7 = 224K)条目到7个节点。我可以将数据从任何节点移动到其他节点吗?
如何在关闭该节点之前将所有数据从一个节点移动到其他节点(群集)?保持数据平衡并分布在其余7个节点中。
我使用create语句创建了表(SampleTable),并使用insert语句插入了数据(使用JDBC连接)。
启用持久性。
答案 0 :(得分:1)
我认为最直接的方法是使用备份。 无论如何,如果您需要避免数据丢失,则必须使用备份(或/和持久性)。
作为一种简单的解决方法,您可以尝试以下步骤:
答案 1 :(得分:0)
只有在群集中配置了备份(> 0)时,下述方法才有效。
要从基准拓扑中删除节点并在其余7个节点之间重新平衡数据,您可以使用Cluster Activation Tool:
停止要从拓扑中删除的节点。
等到节点停止。邮件Ignite node stopped OK
应出现在日志中。
检查该节点是否处于脱机状态:
$IGNITE_HOME/bin/control.sh --baseline
Cluster state: active
Current topology version: 8
Baseline nodes:
ConsistentID=<node1_id>, STATE=ONLINE
ConsistentID=<node2_id>, STATE=ONLINE
...
ConsistentID=<node8_id>, STATE=OFFLINE
--------------------------------------------------------------------------------
Number of baseline nodes: 8
Other nodes not found.
$IGNITE_HOME/bin/control.sh --baseline remove <node8_id>