从 Datastax 6.0 到 Cassandra 3 的迁移路径

Migration path from Datastax 6.0 to Cassandra 3

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

所有键空间复制已更新为 NetworkTopologyStrategy 或使用 LocalStrategy/SimpleStrategy

尝试添加 Cassandra 3.11.10 时,无法达成架构协议,因为八卦协议似乎不兼容并且崩溃了。

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

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

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

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

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

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

迁移所有节点后,运行对集群进行全面修复。