需要迁移 Cassandra 2.0 到 3.11 到新服务器
Old Server : Cenos5/6
Old Cassandra Version : 2.0
New Server : Centos8
New Cassandra Version - 3.11
很少有2000万条记录的表尝试了快照和复制方法,但备份没有恢复。
有更好的方法吗? 还有其他工具吗?
试过的快照方法 - 不起作用可能是版本差异的原因 尝试了 COPY 方法,但这只适用于小桌子,我将它用于其他尺寸较小的桌子。
我有 4 个表,有 500 万到 2000 万条记录。
在 Apache Cassandra 中,nodetool 是一个命令行实用程序,提供用于管理和监视 Cassandra 节点的各种工具。 nodetool 的功能之一是能够备份 Cassandra 数据。
要使用nodetool从旧服务器备份数据,您可以按照以下步骤操作:
连接到安装了 Cassandra 2.0 的旧服务器
打开终端或命令提示符并导航到 Cassandra 安装目录。
通过键入以下命令运行 nodetool 实用程序:
./nodetool 快照-t
将
等待快照完成。 nodetool 实用程序将在快照目录的子目录中创建数据目录的快照,该目录通常位于数据目录中。
快照目录将包含将数据恢复到新 Cassandra 集群所需的所有文件。
将快照目录复制到新服务器。
连接到安装了 Cassandra 3.11 的新服务器。
打开终端或命令提示符并导航到 Cassandra 安装目录。
通过键入以下命令停止 Cassandra 服务:
./bin/nodetool stopdaemon
通过键入以下命令将数据目录替换为备份数据:
rm -rf /var/lib/cassandra/数据/
将 /var/lib/cassandra/data/ 替换为您的 Cassandra 安装的数据目录,并将
输入以下命令启动Cassandra服务:
./bin/cassandra
这会将数据从旧服务器恢复到新服务器。但是请注意,这种备份和恢复方法有一定的局限性,可能并不总是适用于较大的数据集。 如果 nodetool backup and restore 不行,你可以尝试使用 Apache Spark 等其他工具,它可以帮助不同版本的 Cassandra 之间进行数据迁移。