IvorySQL 增量备份与合并增量备份功能解析
1. 概述
IvorySQL v4 引入了块级增量备份和增量备份合并功能,旨在优化数据库备份与恢复流程。通过 pg_basebackup 工具支持增量备份,显著降低了存储需求和备份时间。同时,pg_combinebackup 工具能够将多个增量备份合并为单个完整备份,提升了数据恢复的灵活性和效率。
2. 特性介绍
IvorySQL 的增量备份通过记录每个 checkpoint 周期内的数据变更,确保仅备份自上次备份以来发生变化的数据块。这种机制不仅减少了所需的存储空间,也缩短了备份过程中的 I/O 操作时间。此外,pg_combinebackup 工具支持将多个增量备份合并为一个完整备份,使得在数据恢复时不再需要逐个应用增量备份,大大简化了恢复流程。

2.1 启用增量备份特性
为启用增量备份功能,首先需要在数据库中配置相关参数并重新加载配置文件:
ALTER SYSTEM SET summarize_wal = ON;
SELECT pg_reload_conf();
接着,创建测试表并插入初始数据,以便后续进行备份操作:
CREATE TABLE sample_table(t INT);
INSERT INTO sample_table VALUES (1);
SELECT * FROM sample_table;

2.2 执行全量备份
使用 pg_basebackup 工具执行全量备份,并生成包含 backup_manifest 的备份文件,以便后续增量备份的基础:
pg_basebackup -Fp -D /backup/\$(date +%Y-%m-%d*%H%M%S-FULL)
此命令将全量备份数据保存至指定目录,并记录当前的备份状态。
2.3 进行增量备份
(1)在对数据进行修改后,执行增量备份以记录自上次全量备份或增量备份以来的变更。
修改表数据并执行第一次增量备份:
UPDATE sample_table SET t = 2;
SELECT * FROM sample_table;

执行增量备份:
pg_basebackup -Fp -D /backup/\$(date +%Y-%m-%d*%H%M%S-INCREMENTAL) -i /backup/2025-02-20_161530-FULL/backup_manifest
(2)再次修改表数据并执行第二次增量备份。
UPDATE sample_table SET t = 3;
SELECT * FROM sample_table;

然后执行第二次增量备份:
pg_basebackup -Fp -D /backup/\$(date +%Y-%m-%d*%H%M%S-INCREMENTAL) -i /backup/2025-02-20_161808-INCREMENTAL/backup_manifest

2.4 合并增量备份
合并全量备份和多个增量备份,创建新的完整备份,以便后续的恢复操作:
cd /backup
pg_combinebackup 2025-02-20_161530-FULL 2025-02-20_161808-INCREMENTAL 2025-02-20_162115-INCREMENTAL -o 2025-02-20_66666-FULL

注意事项:全量备份必须在参数列表的首位,增量备份需要按时间顺序排列,以确保数据恢复的完整性与一致性。
2.5 恢复合并后的备份
启动数据库并验证数据的完整性:
pg_ctl start -D /backup/2025-02-20_66666-FULL -o '-p 5435'
SELECT * FROM sample_table;

2.6 合并指定增量备份
如需恢复到特定的增量备份状态,可以选择合并到某个中间增量备份:
pg_combinebackup 2025-02-20_161530-FULL 2025-02-20_161808-INCREMENTAL -o 2025-02-20_77777-FULL

然后启动数据库并验证数据:
pg_ctl start -D /backup/2025-02-20_77777-FULL -o '-p 5436'
SELECT * FROM sample_table;

3. 注意事项
- 备份顺序
确保全量备份在合并命令的首位,增量备份按照时间顺序排列,以避免合并过程中的数据不一致性问题。 - 增量备份存储管理
虽然增量备份减少了存储空间的需求,但恢复操作依赖于完整的增量备份链,任何增量备份的丢失将直接导致恢复失败。因此,建议定期检查和合并增量备份,以确保备份链的完整性和可靠性。 - 性能监控
在执行增量备份和合并操作时,监控数据库的性能,确保操作对系统性能的影响在可接受范围内,避免在高负载时段进行备份操作。
4. 总结
IvorySQL 提供的块级增量备份与 pg_combinebackup 工具显著提升了数据库的备份与恢复效率。通过只备份变更的数据块,增量备份在减小存储占用和缩短备份时间方面展现出卓越性能,而合并增量备份功能则简化了恢复流程,提升了操作的便捷性。
这些先进的特性使得 IvorySQL 成为大规模数据库和对数据恢复要求严格的环境的理想选择,能够提供灵活而高效的备份与恢复解决方案,确保数据的安全与可用性。
IvorySQL 增量备份与合并增量备份功能解析的更多相关文章
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- RDS备份到OSS增量+全量
一.前言 阿里云的RDS备份是占用使用量的,你购买200G那备份使用量是100G左右,导致备份一般也就存半个月,2个全备份. 那半个月后之前的也就删除了,如果要持续保留更久将花费不少的金钱.所以这里用 ...
- innobackupex自动备份脚本(增量备份,自动压缩)
#!/bin/bash #日期转为天数 function date2days { echo "$*" | awk '{ z=-$)/); y=$+-z; m=$+*z-; j=*m ...
- RMAN增量备份-备份保留策略-设置备份集属性
RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...
- MySQL定时备份(全量备份+增量备份)
MySQL 定时备份 参考 zone7_ 的 实战-MySQL定时备份系列文章 参考 zmcyu 的 mysql数据库的完整备份.差异备份.增量备份 更多binlog的学习参考马丁传奇的 MySQL的 ...
- 【Oracle】增量备份和全库备份怎么恢复数据库
1差异增量实验示例 1.1差异增量备份 为了演示增量备份的效果,我们在执行一次0级别的备份后,对数据库进行一些改变. 再执行一次1级别的差异增量备份: 执行完1级别的备份后再次对数据库进行更改: 再执 ...
- xtrabakcup基本用法 安装、全量备份恢复、增量备份恢复
xtrabackup备份原理以及工作流程 备份流程日志分析:1.##读取mysql配置文件2.## 扫描innodb日志lsn并复制inndodb系统表空间3.## 缓冲写出到数据文件并锁表4.## ...
- SVN服务器几种备份策略---重点svnsync备份---OK
配置管理的一个重要使命是保证数据的安全性,防止服务器应硬盘损坏.误操作造成数据无法恢复的灾难性后果.因此制定一个完整的备份策略非常重要. 一般来说,备份策略应规定如下几部分内容:备份频度.备份方式.备 ...
- Mysqldump备份说明及数据库备份脚本分享-运维笔记
MySQLdump是MySQL自带的导出数据工具,即mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中.Mysqldump是一个客户端逻辑备份的工 ...
- MySQL 数据库备份种类以及常用备份工具汇总
1,数据库备份种类 按照数据库大小备份,有四种类型,分别应用于不同场合,下面简要介绍一下: 1.1完全备份 这是大多数人常用的方式,它可以备份整个数据库,包含用户表.系统表.索引.视图和存储过程等所有 ...
随机推荐
- 使用ollama玩转本地大模型
使用ollama玩转本地大模型 https://ollama.com/download 安装 安装验证 测试 ollama run llama2 ollama run qwen
- Airtest使用问题列表
ios 系统为12.4.8,因此安装Xcode 10.3; 问题1: python3: error: unable to find utility "python3", ...
- Docker安装Redis并设置密码
1. 镜像下载 docker pull redis 2. 创建目录 mkdir -p /etc/redis/redis.conf mkdir -p /data/redis 3. 启动容器 docker ...
- 一种调试 线段树 / Treap / Splay / 左偏树 / LCT 等树形结构的技巧
前言 如果我们需要观察程序运行过程中,某一个变量.某一个序列的变化情况,你可以在修改的地方打断点 debug,或者直接在需要的地方输出就行了. 但是对于一些树形结构,我们不好将其直观地呈现出来,常常只 ...
- flutter 的一些概念三
本文同步发布于公众号:stringwu的互联网杂谈:flutter 的一些概念三 1 Stream 与 Future的关系 Stream 和 Future 都是 Flutter 中常用的异步编程模型, ...
- Mac 下erlang及rabbitmq安装
--------------------------------------- 1.首先,安装Homebrew安装Homebrew遇到的问题参考这个链接 2.安装erlang环境brew instal ...
- docker 使用centos镜像运行javaweb
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公 ...
- 2025高级java面试精华及复习方向总结
1. Java基础 顶顶顶顶的点点滴滴 1.1 java集合关系结构图 1.2 如何保证ArrayList的线程安全 方法一: 使用 Collections 工具类中的 synchronizedLis ...
- make学习
make学习,参考「Makefile 20分钟入门,简简单单,展示如何使用Makefile管理和编译C++代码」 程序见:https://github.com/ShiqiYu/CPP/tree/mai ...
- CTFHub-RCE漏洞wp
引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文就是远程代码执行漏洞.顾名思义,这是一种安全漏洞,允许攻击者在受害者的系统上远程执 ...