如何备份和恢复巨大的 Cassandra 数据库表?

问题描述 投票:0回答:1

需要迁移 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 万条记录。

database-administration database-backups cassandra-3.0 cassandra-2.0 centos8
1个回答
0
投票

在 Apache Cassandra 中,nodetool 是一个命令行实用程序,提供用于管理和监视 Cassandra 节点的各种工具。 nodetool 的功能之一是能够备份 Cassandra 数据。

要使用nodetool从旧服务器备份数据,您可以按照以下步骤操作:

  1. 连接到安装了 Cassandra 2.0 的旧服务器

  2. 打开终端或命令提示符并导航到 Cassandra 安装目录。

  3. 通过键入以下命令运行 nodetool 实用程序:

    ./nodetool 快照-t

  4. 替换为快照的名称,将 替换为包含要备份的数据的密钥空间的名称。

  5. 等待快照完成。 nodetool 实用程序将在快照目录的子目录中创建数据目录的快照,该目录通常位于数据目录中。

  6. 快照目录将包含将数据恢复到新 Cassandra 集群所需的所有文件。

  7. 将快照目录复制到新服务器。

  8. 连接到安装了 Cassandra 3.11 的新服务器。

  9. 打开终端或命令提示符并导航到 Cassandra 安装目录。

  10. 通过键入以下命令停止 Cassandra 服务:

    ./bin/nodetool stopdaemon

  11. 通过键入以下命令将数据目录替换为备份数据:

    rm -rf /var/lib/cassandra/数据//* cp -R /path/to/snapshot/dir//* /var/lib/cassandra/data//

  12. 将 /var/lib/cassandra/data/ 替换为您的 Cassandra 安装的数据目录,并将 替换为您要恢复的密钥空间的名称。

  13. 输入以下命令启动Cassandra服务:

    ./bin/cassandra

这会将数据从旧服务器恢复到新服务器。但是请注意,这种备份和恢复方法有一定的局限性,可能并不总是适用于较大的数据集。 如果 nodetool backup and restore 不行,你可以尝试使用 Apache Spark 等其他工具,它可以帮助不同版本的 Cassandra 之间进行数据迁移。

© www.soinside.com 2019 - 2024. All rights reserved.