pgBackRest 是专为 PostgreSQL 设计的开源备份与恢复工具,以其高性能、可靠性和灵活性著称

pgBackRest 是专为 PostgreSQL 设计的开源备份与恢复工具,以其高性能、可靠性和灵活性著称。它支持 全量备份增量备份并行备份/恢复加密 等特性,适用于大规模数据库和关键业务场景。以下是其核心功能及操作指南:


一、pgBackRest 核心特性

  1. 多种备份类型
    • 全量备份(Full Backup):完整备份数据库集群。
    • 差异备份(Differential Backup):仅备份自上次全量备份后的变化。
    • 增量备份(Incremental Backup):基于上一次任意类型备份的变化(更高效)。
  2. 并行处理
    • 支持多线程压缩和传输,显著提升大数据库备份速度。
  3. 高效存储管理
    • 通过 --repo-retention-full 自动清理旧备份,节省存储空间。
  4. 时间点恢复(PITR)
    • 结合 WAL 归档,恢复到任意精确时间点。
  5. 加密与校验
    • 支持 AES-256 加密备份,确保数据安全。

二、安装与配置

1. 安装 pgBackRest
# Ubuntu/Debian
sudo apt-get install pgbackrest# CentOS/RHEL
sudo yum install pgbackrest
2. 配置 PostgreSQL
  • 启用 WAL 归档(用于 PITR):
    # postgresql.conf
    wal_level = replica
    archive_mode = on
    archive_command = 'pgbackrest --stanza=demo archive-push %p'
    
3. 配置 pgBackRest

创建配置文件 /etc/pgbackrest.conf

[demo]  # 备份集名称(Stanza)
pg1-path=/var/lib/postgresql/12/main  # PostgreSQL 数据目录[global]
repo1-path=/var/lib/pgbackrest  # 备份存储路径
repo1-retention-full=2          # 保留最近2次全量备份
start-fast=y                    # 强制创建检查点以加速备份

三、备份操作

1. 初始化备份仓库
sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
2. 执行全量备份
sudo -u postgres pgbackrest --stanza=demo --type=full backup
3. 执行增量备份
sudo -u postgres pgbackrest --stanza=demo --type=incr backup
4. 验证备份
sudo -u postgres pgbackrest --stanza=demo --log-level-console=info verify

四、恢复操作

1. 完全恢复(最新状态)
# 停止 PostgreSQL
sudo systemctl stop postgresql# 清空数据目录
sudo -u postgres rm -rf /var/lib/postgresql/12/main/*# 执行恢复
sudo -u postgres pgbackrest --stanza=demo --type=immediate restore# 启动 PostgreSQL
sudo systemctl start postgresql
2. 时间点恢复(PITR)
sudo -u postgres pgbackrest --stanza=demo --type=time --target="2023-10-01 14:30:00" restore
3. 恢复到指定备份点
# 查看备份列表
sudo -u postgres pgbackrest --stanza=demo info# 根据备份ID恢复
sudo -u postgres pgbackrest --stanza=demo --set=20231001-123456F restore

五、高级功能

1. 并行备份与压缩
# 启用4线程压缩
sudo -u postgres pgbackrest --stanza=demo --type=full --compress-type=lz4 --process-max=4 backup
2. 备份加密
# pgbackrest.conf
[global]
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=secure_password
3. 远程备份存储
  • 支持备份到 S3、Azure、GCS 或 SFTP:
    [global]
    repo1-type=s3
    repo1-s3-endpoint=s3.amazonaws.com
    repo1-s3-bucket=my-backup-bucket
    repo1-s3-key=ACCESS_KEY
    repo1-s3-key-secret=SECRET_KEY
    

六、最佳实践

  1. 定期验证备份
    • 使用 verify 命令确保备份可恢复。
  2. 监控与日志
    • 配置 --log-level-file=detail 记录详细日志。
  3. 自动化清理策略
    • 设置 repo1-retention-fullrepo1-retention-diff 管理备份保留。
  4. 分离备份存储
    • 将备份存储在与生产环境隔离的位置(如云存储)。

七、常见问题

1. 备份失败:权限不足
  • 确保 PostgreSQL 用户对数据目录和备份目录有读写权限。
  • 检查 SELinux/AppArmor 是否阻止访问。
2. 恢复后数据库无法启动
  • 确认恢复时 PostgreSQL 已停止且数据目录已清空。
  • 检查 postgresql.auto.conf 是否残留旧配置。
3. WAL 归档堆积
  • 调整 archive_timeout 或优化业务写入频率。

通过 pgBackRest,PostgreSQL 用户可以高效管理备份与恢复任务,尤其适合对 RTO(恢复时间目标)RPO(恢复点目标) 要求严格的场景。建议结合监控工具(如 Prometheus)实现全链路可观测性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16970.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cursor接入deepseek

cursor安装 cursor下载地址: https://www.cursor.com/ Cursor为新用户提供14天的免费试ai。在这段时间内,你可以使用所有权限内的功能,并享受500次高级模型的快速请求。 额度用完或到期无法使用ai功能,不影响继续使用软件&#…

vscode/cursor+godot C#中使用socketIO

在 Visual Studio Code(VS Code)中安装 NuGet 包(例如SocketIOClient),你可以通过以下几种方法: 方法 1:使用dotnet cli 打开终端:在 VS Code 中按下Ctrl 或者通过菜单View -> Terminal打开终端。 导…

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…

git服务器搭建,gitea服务搭建,使用systemclt管理服务

文章目录 页面展示使用二进制文件安装git服务下载选择架构使用wget下载安装 验证 GPG 签名服务器设置准备环境创建systemctl文件 备份与恢复备份命令 (dump)恢复命令 (restore) 页面展示 使用二进制文件安装git服务 所有打包的二进制程序均包含 SQLite,MySQL 和 Po…

Kotlin Lambda

Kotlin Lambda 在探索Kotlin Lambda之前,我们先回顾下Java中的Lambda表达式,Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能,它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…

Wpf美化按钮,输入框,下拉框,dataGrid

Wpf美化按钮&#xff0c;输入框&#xff0c;下拉框&#xff0c;dataGrid 引用代码后 引用资源 <ControlTemplate x:Key"CustomProgressBarTemplate" TargetType"ProgressBar"><Grid><Border x:Name"PART_Track" CornerRadius&q…

音视频协议

1. 多媒体信息 1.1 多媒体信息的两个主要特点&#xff1a; 信息量很大 标准语音&#xff1a;64Kbits(8KHz采样&#xff0c;8位编码)高质量音频&#xff1a;3Mbps(100KHz采样&#xff0c;12位编码) 在传输多媒体数据时&#xff0c;对时延和时延抖动均有较高要求 1.2 处理时延…

第一天:爬虫介绍

每天上午9点左右更新一到两篇文章到专栏《Python爬虫训练营》中&#xff0c;对于爬虫有兴趣的伙伴可以订阅专栏一起学习&#xff0c;完全免费。 键盘为桨&#xff0c;代码作帆。这趟为期30天左右的Python爬虫特训即将启航&#xff0c;每日解锁新海域&#xff1a;从Requests库的…

稀土抑烟剂——为汽车火灾安全增添防线

一、稀土抑烟剂的基本概念 稀土抑烟剂是一类基于稀土元素&#xff08;如稀土氧化物和稀土金属化合物&#xff09;开发的高效阻燃材料。它可以显著提高汽车内饰材料的阻燃性能&#xff0c;减少火灾发生时有毒气体和烟雾的产生。稀土抑烟剂不仅能提升火灾时的安全性&#xff0c;…

计算机网络-MPLS转发原理

在上一篇关于 MPLS 基础的文章中&#xff0c;我们了解了 MPLS 的基本概念、术语以及它在网络中的重要性。今天&#xff0c;我们将深入探讨 MPLS 转发的原理与流程&#xff0c;帮助大家更好地理解 MPLS 是如何在实际网络中工作的。 一、MPLS 转发概述 MPLS 转发的本质是将数据…

网络安全 | SNI介绍及F5中的配置应用

关注&#xff1a;CodingTechWork SNI介绍 SNI&#xff08;Server Name Indication&#xff09;是 TLS/SSL 协议中的一个重要扩展&#xff0c;旨在解决同一 IP 地址上托管多个网站时&#xff0c;如何选择正确的 SSL/TLS 证书进行加密通信的问题。SNI 通过在 TLS 握手初期传递客…

ARM Cortex-M3/M4 权威指南 笔记【二】架构

一、架构 1.1 架构简介 Cortex-M3/M4 处理器都基于 ARMv7-M 架构。最初的 ARMv7-M 架构是随着 Cortex-M3 处理器一同引入的&#xff0c;而在 Cortex-M4 发布时&#xff0c;架构中又额外增加了新的指令和特性&#xff0c;改进后的架构有时也被称为 ARMV7E-M。要了解 ARM7-M 和…

LabVIEW软件需求开发文档参考

在项目开发的工作历程中&#xff0c;精准把握项目需求无疑是成功打造整个项目的首要关键步骤&#xff0c;同时也是一个至关重要且不可忽视的核心环节。明确且详尽的项目需求就如同建筑的基石&#xff0c;为后续的设计、开发、测试等一系列工作提供了坚实的支撑和清晰的指引。倘…

Linux内核实时机制x - 中断响应测试 Cyclictest分析1

Linux内核实时机制x - 中断响应测试Cyclitest 1 实时性测试工具 rt-test 1.1 源码下载 1.下载源码&#xff1a; ~/0-code/5.15$ git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git 正克隆到 rt-tests... remote: Enumerating objects: 5534, done. remot…

Unity 代码优化记录

文档 unity 代码优化分析&#xff1a;https://docs.unity3d.com/Manual/analysis.html Unity 修复性能问题&#xff1a;https://learn.unity.com/tutorial/fixing-performance-problems-2019-3?courseId5c87de35edbc2a091bdae346#604586d7edbc2a5b4345d249 实例 具体枚举转En…

Arcgis/GeoScene API for JavaScript 三维场景底图网格设为透明

项目场景&#xff1a; 有时候加载的地图服务白色区域会露底&#xff0c;导致在三维场景时&#xff0c;露出了三维网格&#xff0c;影响效果&#xff0c;自此&#xff0c;我们需要将三维场景的底图设为白色或透明。 问题描述 如图所示&#xff1a; 解决方案&#xff1a; 提示…

snort3.0-ubuntu18.04 64入侵检测安装与使用ailx10ailx10​​知乎知识会员

在日常生活中&#xff0c;很多人怀疑自己的手机、电脑被监控了&#xff0c;担心自己的隐私泄漏&#xff0c;实际上最佳的检测方式就是终端检测&#xff0c;也就是EDR&#xff0c;但是就是有那么多的人在网上大放厥词&#xff0c;说任何EDR杀毒软件都检测不到监控&#xff0c;毕…

AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘

云边有个稻草人-CSDN博客 目录 第一章&#xff1a;DeepSeek与ChatGPT的基础概述 1.1 DeepSeek简介 1.2 ChatGPT简介 第二章&#xff1a;模型架构对比 2.1 Transformer架构&#xff1a;核心相似性 2.2 模型规模与参数 第三章&#xff1a;训练方法与技术 3.1 预训练与微调…

AI赋能前端协作:效率提升与团队新动力

当前前端开发领域竞争激烈&#xff0c;项目交付周期紧迫&#xff0c;前端开发团队面临着诸多挑战。沟通成本高、代码规范不统一、开发效率低等问题&#xff0c;常常导致项目延期、质量下降&#xff0c;甚至团队士气低落。而AI代码生成器的出现&#xff0c;为解决这些问题带来了…

Django快速入门

1. 安装 在安装了python环境下&#xff0c;在命令行winr&#xff0c;录入 pip install django或者使用国内源下载 pip install -i https://pypi.douban.com/simple/ django安装完成后&#xff0c;在%python%/Scripts目录下会出现如下图的django-admin.exe的文件 以及django…