Cassandra 备份恢复相关系列之incremental backups 介绍

本文涉及的产品
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 介绍cassandra运维相关的备份恢复之增量备份

本文会就与cassandra备份恢复相关的模块进行系列介绍,大概包括:incremental backups;snapshot;nodetool相关(refresh,rebuild_index等),这里会优先介绍下incremental_backups;

本系列使用代码为cassandra-3.11版本;

incremental backups

Incremental backup 顾名思义就是增量备份,大概可以理解为对cassandra新增的数据进行备份。

开启incremental backups

默认情况下incremental backups是关闭的,有2种途径可以开启incremental backups:

  • 在cassandra 的conf目录下面的cassandra.yaml配置文件里面有 incremental_backups 这么一个配置项,该配置项默认是false;你可以选择改为true,但是需要重启进程,毕竟是需要重新load配置项;
  • 当你的集群进程已经启动,但是又不想重启集群的时候,可以选择bin目录下面有 nodetool 工具,选择 enablebackup 命令即可;因为我们通过代码看到 与 incremental_backups相关的变量是volatile 所以这种操作也是生效的,但是这个命令只能在一个节点生效,如果要操作集群,需要并发对各个节点执行;

    public volatile boolean incremental_backups = false;

当我们开启incremental backups功能以后,每当有新的数据从内存memtable flush 到磁盘,就会对新的生成的sstable打一个hardlink;

public void maybeIncrementallyBackup(final Iterable<SSTableReader> sstables)
    {
        if (!DatabaseDescriptor.isIncrementalBackupsEnabled())
            return;// 如果没有开启就跳过,开启就对sstable相应的磁盘文件打hardlink

        for (SSTableReader sstable : sstables)
        {
            File backupsDir = Directories.getBackupsDirectory(sstable.descriptor);
            sstable.createLinks(FileUtils.getCanonicalPath(backupsDir));
        }
    }

此外,对于bootstrap加入的,decommission减少的,move等操作造成一致性hash环变动的,而造成数据迁移的操作,都会再拖数据的时候,生成该硬链接,下面是我对集群新增节点以后,新增节点的对应keyspace的table下面的backups目录下面的拖来的数据;

[root@Cassandra8c32GTest006 backups]# ll /data/data1/keyspace1/standard1-93263960883911e99a9ae16f3def2644/backups/
total 4324
-rw-r--r-- 2 root root     256 Jun 20 10:19 na-11-big-CRC.db
-rw-r--r-- 2 root root 4094625 Jun 20 10:19 na-11-big-Data.db
-rw-r--r-- 2 root root      10 Jun 20 10:19 na-11-big-Digest.crc32
-rw-r--r-- 2 root root    5536 Jun 20 10:19 na-11-big-Filter.db
-rw-r--r-- 2 root root  293888 Jun 20 10:19 na-11-big-Index.db
-rw-r--r-- 2 root root   10264 Jun 20 10:19 na-11-big-Statistics.db
-rw-r--r-- 2 root root    3132 Jun 20 10:19 na-11-big-Summary.db
-rw-r--r-- 2 root root      80 Jun 20 10:19 na-11-big-TOC.txt

在特定的backups目录下面是对应的需要做增量备份的sstable文件。我们可以对这个文件进行直接的备份即可;当然备份完成的文件需要手工的执行删除操作,不然这些文件是不会被清理掉而造成占用存储空间的问题。

钉钉群:
1b211c42d2911109ac34b9e79c33ef2992458c75_jpeg
微信公众号:
769f0e6930ac3f1d14fcee09f1bd0a7fc178d933_jpeg

目录
相关文章
|
5月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何进行PostgreSQL(简称PG)的全量和增量备份管理
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
7月前
|
存储 SQL Oracle
关系型数据库的备份和恢复
【5月更文挑战第1天】关系型数据库的备份和恢复是确保数据安全性和完整性的重要手段。需要根据具体的需求和场景选择合适的备份和恢复方法,并遵循相关的注意事项来确保备份和恢复的成功。
91 2
关系型数据库的备份和恢复
|
7月前
|
关系型数据库 数据库 流计算
Flink CDC在处理Incremental Snapshot PG数据库时
Flink CDC在处理Incremental Snapshot PG数据库时
320 1
|
JSON NoSQL MongoDB
mongoDB数据导入导出与备份恢复
mongoDB数据导入导出与备份恢复
|
JSON 数据库 数据安全/隐私保护
Mongo数据导入导出备份恢复
Mongo数据导入导出备份恢复
199 0
|
存储 监控 NoSQL
MongoDB journal 与 oplog,究竟谁先写入?
MongoDB journal 与 oplog,谁先写入?最近经常被人问到,本文主要科普一下 MongoDB 里 oplog 以及 journal 这两个概念。 journal journal 是 MongoDB 存储引擎层的概念,目前 MongoDB主要支持 mmapv1、wiredtiger、mongorocks 等存储引擎,都支持配置journal。
|
大数据 分布式数据库 数据库
hbase 备份恢复
讲师:阿里多模型数据库专家 ——玄陵 主要内容介绍:阿里云HBase 备份恢复的设计背景、原理、实现以及与业内大数据数据库的备份恢复机制的异同。 视频回看下载地址:https://yunqivedio.alicdn.com/od/3WfyH1543920819489.mp4 PPT下载地址:https://yq.aliyun.com/download/3126 ---- 每周二下午六点都会有阿里专家在【 HBase生态+Spark社区 钉钉大群】直播,交流HBase技术。
1510 0
|
大数据 分布式数据库 Apache
HBase 备份恢复
Apsara HBase 备份恢复所有的数据库产品都有备份恢复,Apache HBase官方目前没有一个release版本的备份恢复功能,官网提出的方案和机制操作都是很复杂。所以阿里云赋能HBase的备份恢复能力并支持全量和增量的备份和恢复,同时具有高性能、低成本和低线上影响充分自动化。
2257 0
|
NoSQL Shell Perl
cassandra数据备份与迁移
单机备份 注意备份的时候schema也要备份一下,否则不能恢复快照! 1.备份单个keyspace schemacqlsh -e "DESC KEYSPACE user" > user_schema.
7559 0