在Cassandra中,要在同一群集中添加具有更高复制因子的新数据中心,则会抛出错误,表示在任何源数据中心中找不到复制因子1的某个范围 .
我有数据中心(X-RF = 2)和(Y-RF = 1) . 我想添加数据中心(Z - RF = 3) .
我在Datacenter Z中添加了一个节点 . 但是
nodetool rebuild - X.
它因错误而失败
java.lang.IllegalStateException:无法在具有复制因子1的键空间中找到足够的流范围源(-3685074324747697686,-3680615207285604279)
所有Column系列的基本细节:
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
3 回答
您的当前配置(如键空间定义中所示)适用于单个DC . 你需要ALTER KEYSPACE它 - 包含另一个DC . 这将启动复制过程:将读/写的密钥将复制到新DC . 要完全复制所有数据,您需要(另外)使用
nodetool rebuild -- DC2
命令您需要做的是ALTER KEYSPACE然后nodetool重建 . 复制从DESCRIBE KEYSPACE keyspace_name获得但在开头没有CREATE的文本 . 在复制中添加新数据中心 .
然后做:
基于你的评论 - “我已经改变了我的键空间,但对于像(system_distributed)这样的默认键空间,它会抛出错误”
除了用户特定的键空间之外,请确保"system_distributed"之类的默认系统键空间在"NetworkTopologyStrategy"上(SimpleStratergy上没有用于多DC的键空间,除了本地策略)参考:Point-2 https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsAddDCToCluster.html