暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

三分钟系列之Cassandra 备份及还原

DataStax 2022-04-08
5367

最近有用户到后台留言,希望讲解下Cassandra备份相关的方案。所以这期的三分钟我们来聊下备份。


首先来聊备份的目的是什么,通常来说有以下5个原因:

  1. 单副本节点情况下磁盘等硬件故障。

  2. 数据迁移到其它系统。

  3. 数据被污染。

  4. 意外删除。

  5. 将集群回滚至原始状态用于做基准测试。


数据备份恢复的手段通常是以下步骤:

  1. 备份现有数据文件。

  2. 将备份文件推送到外部磁盘/存储。

  3. 从外部磁盘/存储中提取数据并将其回复到数据库中。

  4. 校验数据是否完整。


Cassandra 提供到备份方式有两种

  1. 基于快照的备份。

  2. 增量备份。

具体的操作步骤社区有完整的文档,见以下链接,这里就不详细说了。


    https://cassandra.apache.org/doc/latest/cassandra/operating/backups.html#:~:text=Backups%20in%20Apache%20Cassandra%20database,to%20node%2Fpartition%2Fnetwork%20failure


    这里对以上的备份做一些补充。我们希望备份尽量少手动操作。这里推荐几个开源的备份恢复工具:

    1.Medusa for Apache Cassandra。 Github 地址如下:

      https://github.com/thelastpickle/cassandra-medusa

      它提供以下功能:

      • 单节点备份。

      • 单节点还原。

      • 集群范围的就地还原(在用于备份的同一集群上还原)。

      • 集群范围的远程恢复(在与用于备份的集群不同的集群上进行恢复)。

      • 备份清除。

      • 通过 Apache Libcloud 支持本地存储、谷歌云存储 (GCS) 和 AWS S3。可以扩展以支持 Apache Libcloud 支持的其他存储提供程序。

      • 支持使用单个令牌或 vnode 的集群。

      • 完整或差异备份。


      2.Netflix开源的Priam。GitHub地址如下:

        https://github.com/Netflix/Priam

        这个工具提供以下丰富的功能:

        • 使用 SimpleDB 进行token管理。

        • 支持通过公共 IP 在 AWS 中的多区域 Cassandra 部署。

        • 多区域环境中的自动安全组更新。

        • 将 SSTables 从本地临时磁盘备份到 S3。

        • 使用 Snappy 压缩动态压缩备份数据。

        • 备份节流

        • 用于未来增强功能的可插拔模块(支持多种数据存储)。

        • 用于列出和恢复备份数据的 API操作。

        • 用于备份/恢复和其他操作的 REST API 操作。


        这2个都是Cassandra集群规模上万点重度用户开源出来的工具,可以放心的在生产环境中使用。


        除了以上工具,还有一些花样的玩法。比如:

        1. 数量不大的情况下,直接使用CQL的COPY TO/FROM 方式来完成备份与恢复。

        2. 使用CDC的方式,实时的把数据通过Pulsar同步到其它集群或者异构数据库里面,这也是当前火遍全球的数据同步方式。



        最后,备份恢复完成后。我们需要校验下数据是否完整,通常会检查下数据的总数是否相等来做个完整性判断。这个时候可以使用DataStax的DSBulk来做个count的查询。其用法如下:

          dsbulk ( load | unload | count ) [options]
          (( -k | --keyspace ) keyspace_name
          ( -t | --table ) table_name)
          | ( --schema.query string )
          [ help | --help ]

            Github:
            https://github.com/datastax/dsbulk

          本期的分享就到这边了。


              如果你有关于Cassandra/Pulsar相关素材,欢迎投稿,我们将会给你赠送一个小礼物。


              想学习更多的Casssandra、Spark、Pulsar相关知识,请扫码关注。

          文章转载自DataStax,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论