Cassandra版本从2.0.9升级到2.2

joh*_*i21 5 upgrade cassandra datastax cassandra-2.0 cassandra-2.2

我们计划升级目前在2.0.9到2.2.6上运行的集群.根据文档和一些博客,人们升级cassandra inplace即从环中删除一个节点升级它并再次添加它.我们对这种方法持怀疑态度,因为事情可能出错(这是一个拥有大量QPS的高交易数据库).

因此,我们计划在集群中添加一个新的数据中心,该集群将具有升级的cassandra版本(2.2).所以设置应该有两个数据中心一个旧(2.0.9)和另一个新(2.2.6)

此数据中心只是一个备份.当数据中心变得稳定时,我们将更改与此数据中心的客户端连接,如果它运行良好,那么我们将使用此数据中心并关闭旧数据中心,否则我们可以回退到旧数据中心并调试出错的地方.

这个过程是否足够可行,还是我们应该进行现场升级?

数据中心内是否存在两个cassandra版本(2.0和2.2).

这种方法有挫折吗?

Aar*_*ron 3

数据中心内是否可以存在两个 cassandra 版本(2.0 和 2.2)。

不,他们不能。

这个过程是否足够可行,或者我们应该进行就地升级?

您将需要执行就地升级。这是因为 Cassandra 无法跨版本进行流式传输。执行就地升级允许新版本读取旧版本的 SSTable。

这种方法有缺陷吗?

正如我所提到的,您将无法将数据从现有节点流式传输到新的 2.2 DC。因此,引导、重建和修复都是不可能的。

您遇到的另一个问题是 2.2.6 与 2.0.9 不“升级兼容”。来自此 DataStax 文档:Apache Cassandra 版本需要中间升级......

Apache Cassandra 2.2.x 限制

  • 从Cassandra 2.1 2.1.9以上版本直接升级到Cassandra 2.2.x。
  • 不支持从 Cassandra 2.0 及更早版本直接升级。

首先必须将整个集群升级到 Cassandra 2.1。升级到 2.1 完成后,可以将节点升级到 2.2.6。