我尝试将单节点Cassandra集群从1.1.5升级到2.0.x.
我的生产服务器在Linux上运行。我将数据文件夹拉到我的Windows框中,保留nodetool upgradesstables
密钥空间以及我感兴趣的特定密钥空间,并在获得Cassandra之后删除其余部分。
我升级并测试过:
冉:
describe schema
select * from table limit 100
INFO 16:43:01,758 Opening C:\path\mykeyspace-mytable-ic-655 (97902117 bytes)
ERROR 16:43:12,443 Exception encountered during startup
java.lang.RuntimeException: Incompatible SSTable found. Current version jb is unable to read file: C:\path\mykeyspace\mytable\mykeyspace-mytable.mytable_location_idx-he-647. Please run upgradesstables.
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:409)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:391)
at org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex.init(AbstractSimplePerColumnSecondaryIndex.java:52)
at org.apache.cassandra.db.index.SecondaryIndexManager.addIndexedColumn(SecondaryIndexManager.java:292)
at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:277)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:415)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:386)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:309)
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:266)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:110)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:290)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:480)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:569)
1.x版本的一切看起来都不错。
当尝试升级到2.0.7时,我遇到了一个问题(我看到推荐的升级路径是1.2.9 - &gt; 2.0.7):
MainActivity
我在启动1.2.9 / bin / cassandra之后从1.2.9 / bin运行升级。 知道什么是错的吗?
答案 0 :(得分:3)
mytable_location_idx-he-647
是1.1.5
sstable(he
是版本,h
是1.1,e
是h
的第5版本) 。再次运行升级并验证所有sstables是否已迁移。 sstable的版本应以i
开头1.2,并且在升级到2.0之前,您希望它在ic
。
答案 1 :(得分:0)
问题在于我只是将生产群集部分迁移到我的本地环境。我复制了整个system
键空间文件,只复制了一些data
文件,仅用于我的一个键空间。
我通过重做一切来解决问题:
upgradesstables
偶尔会留下一些人。