从 Datastax 6.0 到 Cassandra 3 的迁移路径

Nic*_*aux 3 cassandra datastax-enterprise

我正在尝试找到从 Datastax Enterprise (DSE) 6.0.14 到 Cassandra Community OSS 3 的迁移路径。到目前为止,我无法找到有效的迁移路径。

所有密钥空间复制都已更新为NetworkTopologyStrategy或使用LocalStrategy/SimpleStrategy.

尝试添加 Cassandra 3.11.10 时,无法达成模式协议,因为 gossip 协议似乎不兼容并且会崩溃。

尝试添加 Cassandra 3.11.3 时,它没有崩溃,但架构似乎也不兼容。

我正在运行一个 5 个节点的 DSE 集群,并试图用 5 个节点的 Cassandra 替换它。

当新的 Cassandra 节点使用另一个 DC 名称时,所有节点的集群名称都相同。

小智 5

有可能,我们发现的程序有效:

  1. 提取当前节点/集群的模式
  2. 提取表system_schema.tables的数据
  3. 排空节点
  4. sstable 降级您的键空间(不适用于系统* 键空间)
  5. 将节点初始化为一个空的(新的)Cassandra OSS 节点
  6. 允许它创建它的系统键空间和角色
  7. 从 DSE 导入架构(步骤 1)
  8. 覆盖 system_schema.tables 中的表 ID 以匹配 DSE 的 ID
  9. 停止 cassandra,将降级后的 sstables 移回相关data目录,重启 Cassandra 加载数据
  10. 该节点应该是集群的一部分,您可以以相同的方式继续使用其他节点。但是使用已经迁移的OSS节点来获取schema。

从应用端,我们在迁移第一个节点后强制OSS节点。这允许应用程序查看 OSS 和 DSE 节点并写入集群中的所有节点。

迁移所有节点后,对集群运行完整修复。