当前位置: 首页 > news >正文

金仓数据库永久增量备份技术原理与操作

  • 先用一张图说明一下常见的备份方式
    在这里插入图片描述
为什么需要永久增量备份

传统的数据库备份方案通常是间隔7天对数据库做一次全量备份(完整备份),每天会基于全量备份做一次增量备份,如此循环,这种备份方案在全备数据量过大场景下可能遇到如下问题:
每周的全量备份像一场“资源风暴”——磁盘I/O打满、业务响应延迟飙升,备份耗时长…
直到遇到永久增量备份,我才发现,原来备份可以如此“优雅”。今天,就带大家深入它的技术内核,看看它是如何用“一次全量+智能合并”颠覆传统逻辑的。


一、永久增量备份技术解剖

核心逻辑“用计算换存储,用合并替全量”

  1. 初始全量(Day 1)

    • 像给数据库拍一张“全景照片”,记录所有数据的初始状态。
  2. 每日增量(Day 2~7)

    • 只记录变化的数据或数据块,类似Git的差异提交。 金仓数据库支持文件级别的增量备份和块级别的增量备份
      • 举例:若一个1TB的数据库每天仅1%数据变化,增量文件只需约10GB。
  3. 智能合并(Day 8)

    • 最精彩的魔法:将Day 1的全量 + Day 2~7的增量合并为新的全量备份
    • 合并过程解析(伪代码逻辑):
      def 合并全量(old_full, increments):  new_full = old_full.copy()  for inc in increments:  new_full.apply_diff(inc)  # 将增量差异应用到旧全量  validate(new_full)           # 校验数据一致性  return new_full  
      

这里补充说明一下为什么需要做合并而不是持续只做增量备份,核心原因是增量备份越多,数据恢复的迭代恢复过程耗时会很长。
在这里插入图片描述

  • 优势总结
    • 新全量直接代表最新数据状态,后续增量只需基于它继续。
    • 旧备份链按需自动清理,清理后存储空间线性增长而非指数爆炸。
    • 无需对数据库进行全量备份,数据库资源消耗下降,业务影响大大降低 。

二、金仓数据库如何开启永久增量备份
  • 以金仓数据库KINGBASE (KingbaseES) V009R001C002B0014为例:
  • 在备份初始化时,可以选择是否开启永久增量备份
    控制参数:修改安装路径/Server/share/sys_backup.conf配置文件中的如下参数
    _continue_incr:是否启用永久增量备份功能,默认n,配置为y则代表开启永久增量备份功能。
    开启之后,定时任务中的全量备份动作,将变更为一次增量备份+合并备份集
# Continue Incr-Backup
# y means Incr-Backup will merge current backup-set and it's reference into one new FULL backup-set
#   merge into FULL applied in crontab-job by _crond_full_days
#   normal Incr-Backup applied in crontab-job by _crond_incr_days
# n means no merge
_continue_incr=n

在这里插入图片描述


其他配置和操作同普通备份配置一致
手动备份命令示例:

# 合并备份集,但是不移除旧的备份集
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=incr --merge_action=merge-no-delete backup# 合并备份集,并且移除旧的备份集
/home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=incr --merge_action=merge-and-delete backup
http://www.xdnf.cn/news/353323.html

相关文章:

  • 电商平台如何做好DDoS 攻防战?
  • 物流基础知识-术语 | 医药物流(1)
  • OpenHarmony平台驱动开发(十),MMC
  • k8s监控方案实践(二):集成Alertmanager告警与钉钉Webhook通知
  • C23 与 MISRA C:2025:嵌入式 C 语言的进化之路
  • 4.3【LLaMA-Factory实战】教育大模型:个性化学习路径生成系统全解析
  • 微服务中 本地启动 springboot 无法找到nacos配置 启动报错
  • 第十六章,网络型攻击防范技术
  • Python 常用内置函数详解(十):help()函数——查看对象的帮助信息
  • 【论文阅读27】-TCN–BiLSTM -滑坡预测
  • 从Dockerfile 构建docker镜像——保姆级教程
  • `待办事项css样式
  • electron 结合 react(cra创建的) 创建桌面应用和打包桌面应用
  • 2025年API安全防御全解析:应对DDoS与CC攻击的智能策略
  • rtsp,。。。。
  • 现代框架对SEO的深度影响
  • 【概念解读】开发中遇到的概念阶段
  • RuntimeError: expected scalar type ComplexDouble but found Float
  • 计算机视觉与深度学习 | 视觉+激光雷达+惯惯性SLAM算法汇总(原理,公式,代码)
  • Java中的分布式缓存与Memcached集成实战
  • 电压取样端口静电浪涌防护方案 之6TS Series瞬态抑制器TVS
  • hz2新建Keyword页面
  • 使用 swift 微调 Qwen3-4b 模型
  • 矩阵短剧系统:如何用1个后台管理100+小程序?深度解析多端绑定技术
  • C++--类中this指针的讲解
  • 从数据孤岛到智能工厂:RG3000边缘网关的数字化转型实践
  • Mac QT水平布局和垂直布局
  • 小红书视频无水印下载方法
  • AI技术与园区运营的深度融合:未来生态型园区的建设路径
  • VS Code配置指南:打造高效的QMK开发环境