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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 介绍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

目录
相关文章
|
存储 Prometheus Kubernetes
「译文」通过 Relabel 减少 Prometheus 指标的使用量
「译文」通过 Relabel 减少 Prometheus 指标的使用量
|
时序数据库
客户端连接InfluxDB
客户端连接InfluxDB
797 0
|
4月前
|
传感器 数据采集 算法
【免费开源】基于 STM32F4 的四轴飞行器设计与实现——从零开始到成功起飞(项目源码打包分享)
四轴飞行器作为一种低空、低成本的遥感平台,已经在多个领域展现出广泛的应用潜力。相比其他类型的飞行器,它在硬件上结构紧凑、安装方便,但在软件层面却充满挑战——从传感器数据融合到姿态解算,再到快速且稳定的控制算法,每一环节都需要精心设计,也正因此让四轴飞行器更具技术魅力。
462 74
|
人工智能 编解码 BI
LEOPARD:腾讯AI Lab西雅图实验室推出的视觉语言模型
LEOPARD是由腾讯AI Lab西雅图实验室推出的视觉语言模型,专为处理含有大量文本的多图像任务设计。该模型通过自适应高分辨率多图像编码模块和大规模多模态指令调优数据集,在多个基准测试中表现卓越,适用于自动化文档理解、教育和学术研究、商业智能和数据分析等多个应用场景。
353 2
LEOPARD:腾讯AI Lab西雅图实验室推出的视觉语言模型
|
缓存 运维 监控
Cassandra 性能压测及调优实战
掌握Cassandra分布式数据库性能压测及性能调优 作者:孤池
4415 1
Cassandra 性能压测及调优实战
|
机器学习/深度学习 供应链 安全
守护Windows系统安全:挑战、策略与未来展望
加强数据备份与恢复以及提升用户安全意识等。同时,展望未来,人工智能与机器学习、零信任架构、量化安全评估与风险管理以及强化供应链安全等新技术和新理念将为Windows系统安全提供更加坚实的保障。让我们共同努力,守护好Windows系统的安全防线,为数字化时代的繁荣发展贡献力量。
|
存储 Oracle 关系型数据库
使用Docker安装ClickHouse
ClickHouse是一个由俄罗斯最大的搜索公司Yandex开源的列式数据库(DBMS),主要用于在线分析处理查询(OLAP),于2016年开源,采用C++开发。凭借优秀的性能,市场反应非常热烈。
2919 0
使用Docker安装ClickHouse
|
Oracle 关系型数据库 数据库
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist的原因分析
        今天突然接到同事电话,说oracle数据库连接不上了,我远程过去用pl/sql developer登录,提示ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist.意思是oracle无法使用,共享内存领域不存在。
2940 0
|
存储 搜索推荐 程序员
配置Picgo图床之COS、OSS、Github图床
配置Picgo图床之COS、OSS、Github图床
《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互
《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互
379 0