如何解决Cassandra在另一个集群上移动数据
我有一个3节点的Cassandra群集(3.11.0),我想将此群集移动到另一个位置。 我的旧群集(塔什干群集)中有3个虚拟机
192.168.1.11 -1 node
192.168.1.12 -2 node
192.168.1.13 -3 node
我有一个新的(空的)集群
172.17.5.10 -1 node
172.17.5.11 -2 node
172.17.5.12 -3 node
我想将所有数据从旧集群移到新集群,我的步骤是(旧集群所有键空间的RF = 3,并且具有NetworkTopologystrategy BTW)
1) add old nodes as seeds to new cluster
2) bootstrap new nodes
3) nodetool cleanup on old nodes
4) then run nodetool decommision on old nodes,one by one
5) nodetool removenode <oldnodeip>
所以我的计划正确吗? ster 3之后我应该修理nodetool吗? 谢谢
解决方法
与其进行引导/停用,不如执行以下操作:
- 将所有新节点添加为新数据中心
- 调整复制因子以使用第二个数据中心
- 从新DC的每个节点运行
nodetool rebuild
- 将应用程序切换到新的DC
- 停用DC
在following documentation中描述了步骤1-3,在here中描述了步骤5。
另一种可能性是执行replacing nodes one by one。
在这两种情况下的主要优点是可以最大程度地减少节点之间的数据移动。否则,您将在添加节点时移动数据,然后在进行取消授权或removenode操作时再次移动数据
,Nodetool清理应替换为nodetool修复。清理会从节点中删除多余的数据,并且在修复过程中流失所有丢失的数据时,在较旧的节点中运行它们将无益。另外,退役后将不再需要nodetool removenode。两者执行相同的功能,但方式不同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。