Cassandra集群旧数据未在新节点中复制

问题描述 投票:2回答:3

我在本地系统上安装了apache cassandra用于测试目的。通过1个系统(1个节点),我能够在数据库中进行读/写和查询。我添加了另一个节点并创建了一个集群。现在我在我的系统上写入的数据被复制到其他节点上,反之亦然,但是我的系统早期添加新节点时所存在的数据不会被复制。尽管Keyspace和表存在于新节点上,但它们都是空的。将新节点添加到群集时,我是否做错了什么?

cassandra cql cassandra-2.0 cql3 cqlsh
3个回答
1
投票

我最好的猜测是你关闭了auto_bootstrap(默认情况下它是ON)。从文档:

auto_bootstrap(默认值:true)此设置已从默认配置中删除。它使新的(非种子)节点自动将正确的数据迁移到自己。在初始化没有数据的新集群时,添加auto_bootstrap:false。

解决此问题的最简单方法是在节点上运行修复,以确保它获取缺少的任何数据。

http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_repair_nodes_c.html


0
投票

如果新节点上的数据不是最新的,只需在新节点上运行它。

运行$ CASSANDRA_HOME / bin / nodetool rebuild

以cqlsh身份登录并验证新节点是否已收到数据。

还请看下面 -

http://docs.datastax.com/en/cassandra/2.0/cassandra/operations/ops_add_dc_to_cluster_t.html


0
投票

如果您有正确的种子和复制设置。但数据仍然没有被复制到新的数据中心。请使用nodetool repair选项执行-full将数据复制到新的数据中心节点。

© www.soinside.com 2019 - 2024. All rights reserved.