本文介绍了Cassandra启动问题:尝试为现有列系列分配ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在centos5.5 x86_64和jdk-1.6.0_24 64位使用 cassandra 0.7.4
当我重新启动它,它扔掉:

I'm using cassandra 0.7.4 on centos5.5 x86_64 with jdk-1.6.0_24 64-Bit. When I restart it , it throw out:

ERROR 11:37:32,009 Exception encountered during startup.
java.io.IOError: org.apache.cassandra.config.ConfigurationException: Attempt to assign id to existing column family.
    at org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:476)
    at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:138)
    at org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:314)
    at org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:79)
Caused by: org.apache.cassandra.config.ConfigurationException: Attempt to assign id to existing column family.
    at org.apache.cassandra.config.CFMetaData.map(CFMetaData.java:223)
    at org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:472)
    ... 3 more






问题:当我删除系统键空间的文件时,可以重新启动 sucess
所以我认为这个问题是由系统Keyspace造成的,即使在CF Scheam

然后我构建一个新的测试环境,我知道这个问题是因为这个操作

Then I build a new test environment, I know this proble is cause by this opeartion

update keyspace system with replication_factor=3;

但现在我怎么能修复呢?
此群集上有许多数据,我 不能 丢失数据。

But now how can i repair it ?! There are many data on this cluster,and I couldn't lose data.

已经做了更新keyspace系统与replication_factor = 1; ,但问题仍然存在

如何重新启动cassandra 而不丢失数据 ?谁可以帮助我?

How can I restart cassandra without lose data ? Who can help me?

推荐答案

除非真的真的知道你在做什么,否则不应该修改系统键空间。 (如果你要问,你不。)

You should never modify the system keyspace unless you really, really know what you are doing. (If you have to ask, you don't. :)

因此,答案是:不要这样做。

So, the answer is: don't do that.

要恢复,您应该将cassandra.yaml中的initial_token设置为您的节点的当前令牌(您可以使用nodetool ring查看),然后删除系统键空间并重新启动。然后你需要重新创建你的columnfamily定义,但你的数据不会受到影响。

To recover, you should set initial_token in cassandra.yaml to your node's current token (which you can see with "nodetool ring"), then delete the system keyspace and restart. Then you'll need to recreate your columnfamily definitions, but your data will not be affected.

这篇关于Cassandra启动问题:尝试为现有列系列分配ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 17:40