如何将数据从Cassandra 2.1.9迁移到全新的3.5安装

时间:2016-05-15 21:47:48

标签: cassandra datastax

我尝试使用sstableloader将数据加载到Cassandra 3.5中。在Cassandra 2.1.9下使用nodetool snapshot捕获数据。所有表格加载都很好,除了一个。它很小,只有2列20行。所以,我输入了这个错误:https://issues.apache.org/jira/browse/CASSANDRA-11806。这个bug很快被关闭了。它似乎并不重复,因为最初的情况是就地升级节点,而不是使用sstableloader加载数据。

即便如此,我还是尝试应用给出的建议upgradesstable [原文如此]。

从Cassandra的一个版本升级到另一个版本的指示最多似乎是粗略的。以下是我根据工作备份/恢复所做的工作以及各种Cassandra文档中有关如何升级的信息:

  • 像往常一样从prod(Cassandra 2.1.9)快照数据
  • 将数据还原到在我的工作站上运行的Cassandra 2.1.14
  • 验证还原到2.1.14(已成功)
  • 将data / data / makeyourcase复制到Cassandra 3.5安装
  • 点燃Cassandra 3.5
  • 运行nodetool upgradesstables将sstables升级到3.5

nodetool upgradesstables失败:

>./bin/nodetool upgradesstables
error: Unknown column role in table makeyourcase.roles
-- StackTrace --
java.lang.AssertionError: Unknown column role in table makeyourcase.roles

所以,问题:是否可以直接从2.1.x升级到3.5?实际的升级过程是什么? http://docs.datastax.com/en/latest-upgrade/upgrade/cassandra/upgradeCassandraDetails.html的过程似乎缺少重要细节。

1 个答案:

答案 0 :(得分:0)

随着时间的推移,表格的状态发生了变化。

由于表格很小,我可以使用COPY将数据导出为CSV,然后将其导入新版本,从而迁移数据。

请查看https://issues.apache.org/jira/browse/CASSANDRA-11806,了解其他解决方法和即将发生的错误修复。