Upgrading Cassandra 1.2.9 to 2.0.x



我正在尝试将单个节点木糖集群从1.1.5升级到2.0.x.。

我的生产服务器正在Linux上运行。我将数据文件夹拉到了我的Windows框中,将system密钥空间以及我感兴趣的一个特定的密钥夹保留,并在抬起Cassandra后将其余部分放在。

我进行了升级和测试:

  • 1.1.5-> 1.2.0
  • 1.2.0-> 1.2.8
  • 1.2.8-> 1.2.9

运行:

  • nodetool upgradesstables
  • describe schema
  • select * from table limit 100

用1.x版本看起来不错。

尝试升级到2.0.7时,我遇到了一个问题(我看到了建议的升级路径为1.2.9-> 2.0.7):

INFO 16:43:01,758 Opening C:pathmykeyspace-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:pathmykeyspacemytablemykeyspace-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)

i 启动1.2.9/bin/cassandra后,从1.2.9/bin升级。知道怎么了?

mytable_location_idx-he-6471.1.5 sstable(he是版本,h为1.1,eh的第五版)。再次运行UPGRADESSTABLES,并验证所有Sstables迁移。Sstable的版本应以1.2的i开始,您希望它在ic之前升级为2.0。

问题在于我只将生产集群部分迁移到本地环境。我只复制了整个system密钥空间文件,只为我的一个键空间之一复制了一些data文件。

我通过重做所有内容来解决问题:

  • 设置1.1.5本地
  • 使用cqlsh连接到它,丢弃了我在本地没有的所有其他密钥座和桌子
  • 迁移(不确定哪个是解决问题的,假设我全部完成了):1.1.5-> 1.2.0-> 1.2.8-> 1.2.9-> 1.2.9-> 2.0.0-> 2.0.1-> -> 2.0.1->2.0.7。
  • 可能删除了任何不匹配的索引文件卡桑德拉在启动启动时抱怨(不确定我在最后一次神奇地工作时是否会遇到任何东西,但这让我在以前的尝试期间浏览版本)。我的猜测是卡桑德拉(Cassandra)看着所有人,但是upgradesstables偶尔会留下一些。

最新更新