Cassandraexceptioncaching模式版本X与当前模式版本Y不匹配

我们在我们的机器上安装了DataStax Cassandra Community Server 3.0.2,创build了几个密钥空间,并将一些数据从旧数据库迁移到Cassandra(Aroudnd 10GB数据)。 虽然这是迁移发生,我们创build了这些表的materialized views 。 在创build之后的几分钟(不确定究竟是多久),我们得到了我们的服务(部署在2个数据中心体系结构中的2×3个节点上),并且完全没有任何日志信息,为什么停止。 之后,我们尝试启动我们的服务,我们在日志中得到以下错误

 java.lang.RuntimeException: Cache schema version a2c390a1-f2cd-3d59-8b5c-a0a1d794d0fe does not match current schema version 8d1347d7-7729-3698-8537-4b91ae9ce7dd at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:198) ~[apache-cassandra-3.0.2.jar:3.0.2] at org.apache.cassandra.cache.AutoSavingCache$3.call(AutoSavingCache.java:157) [apache-cassandra-3.0.2.jar:3.0.2] at org.apache.cassandra.cache.AutoSavingCache$3.call(AutoSavingCache.java:153) [apache-cassandra-3.0.2.jar:3.0.2] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_66] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66] 

我们试图研究可能引起这种情况的代码。 这给了我们一些关于它是什么原因的信息 – 显然这个服务试图将当前的模式版本与caching中的模式版本进行匹配(我假定它在服务停止/创build物化视图之前)我们确信我们没有除了创build实体化视图之外,还可以对键空间进行任何模式更改。

那么,我想知道过去没有人会有这样的问题吗? 所以我们不确定我们这边出了什么问题。 我们在节点上运行nodetool cleanup ,没有任何帮助。 我们不想丢失任何数据。 我们正在尝试恢复,所以我们删除了$CASSANDRA_HOME\data\saved_caches文件夹并重新启动服务。在启动服务器时,它正在重播$CASSANDRA_HOME\data\saved_caches ,并且花费很长时间。 我认为这可能是由于我们拥有的数据量或机器已经完全消失,需要更换?

任何与这个问题有关的指针可能真的很有帮助! 先谢谢你。

如果可能有帮助,我们在Windows机器上运行DataStax Cassandra Server,并将Cassandra作为Windows服务运行。

清除commitlog目录并重新启动它为我做了。

 rm -rf /path/to/cassandra/data/commitlog 

晚了,但我希望它可以帮助任何卡住的人。