PostgreSQL 备份恢复工具之 Barman

article/2025/9/23 18:59:40

barman

文章目录

    • Barman 简介
    • Barman 与 pg_dump 对比

Barman 简介

Barman(Backup and Recovery Manager,备份与恢复管理器)是一个用于 PostgreSQL 数据库灾难恢复的开源管理工具,使用 Python 编写。Barman 使得企业能够执行多个关键业务数据库的远程备份,并且协助 DBA 执行灾难时的数据恢复。

Barman 用于 PostgreSQL 数据库的物理备份,与 Oracle 的备份恢复工具 RMAN 非常类似。

Barman 由 2ndQuadrant 公司开发和维护,基于 GNU GPL 3 协议发行。

Barman 主要的功能和目标如下:

  • PostgreSQL 服务器的完全物理热备
  • 时间点恢复(PITR)
  • 管理多个 PostgreSQL 服务器
  • 通过 rsync/SSH 或 pg_basebackup 执行远程备份(包括 9.2+ 备用服务器)
  • 支持本地和远程(通过 SSH)恢复
  • 支持 WAL 归档和流复制
  • 支持同步 WAL 流复制(“零数据丢失”,PRO=0)
  • 增量备份与恢复
  • 并行备份和恢复
  • WAL 文件的集中管理,增强了与备用服务器之间的集成
  • 管理备份和 WAL 文件的保留策略
  • 获取服务器状态和信息
  • WAL 文件压缩(bzip2、gzip 或者 custom)
  • 通过备份目录管理基础备份和 WAL 文件
  • 简单单一的 INI 配置文件
  • 完全使用 Python 编写
  • 恢复时的 PGDATA 和表空间位置移动
  • 备份通用信息和磁盘占用信息
  • 服务器备份诊断
  • 与标准归档工具(例如 tar)进行集成
  • 备份前/后的钩子脚本
  • 元数据的本地存储

Barman 与 pg_dump 对比

pg_dump 是执行 PostgreSQL 逻辑备份的官方工具。逻辑备份是数据库中所有对象和数据的一个快照。通常来说,执行逻辑备份是一个很好的实践,但是对于灾难恢复而言并不足够。

如果你每天在早上 3 点执行一次逻辑备份,然后在下午 6 点发生系统故障,可能会丢失 15 个小时的交易数据。对于大多数的关键业务场景而言,这都是无法接受的。

从另一方面来说,Barman,使用 PostgreSQL 物理备份技术,能够保证非常低的恢复点目标(RPO)。基于 PostgreSQL 的业务系统推荐使用物理备份实现灾难恢复,而 Barman 能够提供使简单易行的备份管理以及可靠的恢复。

下一步:Barman 文档。


http://chatgpt.dhexx.cn/article/yU3RKtpA.shtml

相关文章

使用 barman的备份和归档PostgreSQL

1 前言 1.1 Barman简介 barman(备份和恢复管理器)是用于PostgreSQL服务器进行灾难恢复的开源管理工具,是以Python编写的。它支持对多台服务器执行远程备份,以降低风险并帮助DBA进行数据库恢复。 1.2 Barman的备份方式 本文假定…

github删除某个项目流程

1.进入网站 2.找到要删的项目,点进去 3.进去之后往下拉,拉到这里 接下来就点它按提示操作就删除了。

GitLab删除项目操作(亲测)

刚开始找了半天没找到删除按钮在哪,现在记录一下,分享。 第一步:点进入项目 第二步:进入项目Settings 第三步:往下拉,找到Remove,删除即可。 所有内容皆为个人总结或转载别人的文章,只为学习技…

删除gitlab上的分支

好久没有更新了, 今天记录一下删除gitlab上的分支的操作 登录仓库后, 依次点击: project --> home --> Readme --> repository --> branches 会看到所有master和所有分支, 点击右侧删除即可; 看到右边的红色垃圾桶了没, 删除按钮, 想要删除那个就点那个即可; 最近很…

GitLab如何删除已有项目

一。点击进入你需要删除的项目: 二。选择Settings,点击General,找到Advanced settings,点击Expand: 三。往下翻,找到Remove Project,点击: 四。根据提示,输入test&#x…

gitlab中如何删除Group,删除项目

删除自己创建的组: 一、首先查看自己的组,然后edit group,点击进入; 二、点击Settings中的General,然后点击Path, transfer, remove的Expend按钮; 3、滑到最下边,点击“Remove group”; 4、在弹出框中输入…

删除git、gitlab的分支

1.使用命令 删除本地分支 git branch -d dev 【git branch -参数 本地分支名称】删除远程分支 git push origin --delete dev 【git push origin --参数 远程分支名称】 2.在gitlab上删除分支 进入某个项目,例bootdo这个项目,bootdo->左右菜单Repos…

gitlab删除仓库文件夹

如图: 要删除router 首先进入项目master文件夹下, Git Bash Here ,打开命令窗口 $ git pull origin master # 将远程仓库里面的项目拉下来 $ dir # 查看有哪些文件夹 $ git rm -r --cached target # 删除target文件夹 $ git commit -m ‘删除了target’ # 提交…

gitlab 创建、修改、删除项目

一、创建用户组 1、setting --> Groups --> New group 2、填写用户组信息,点击 "Create group"。 3、选择需要加入改组的 用户和角色,点击 "Add users to group" 二、创建项目 1、点击 "New project" 2、填写项…

github上如何删除一个项目(仓库)

最近在学习使用git来管理项目,在学习管理远程库时,使用github来管理,创建的项目后来发现不需要这个项目了,想删除,找了好久都没找到在哪删除,在这里特意记录下来 首先创建一个Repositories 点击New reposi…

GitLab删除项目的操作步骤

1.进入项目首页 2.选择Settings-General 3.划至底部找到Advanced,点击右侧"Expand" 4.往下划可看到删除项目的按钮,点击后按操作提示即可

gitlab上删除项目

最近公司打算把不用svn而是git来托管代码. 然后我自己在公司的gitlab上建立了一个测试项目,这时候删除很容易直接在本页面上.一旦我上传了一些东西之后再删除就隐藏的比较深了.然后上网查的百度教程,发现不行.原因可能是git版本更新完之后,位置变了. 摸索了一通之后终于找到了…

如何删除gitlab上的文件夹

参考:如何删除gitlab上的文件夹 1.在本地新建一个文件夹,进入文件夹,右键git bash here。 2.在命令行窗口输入拉去gitlab仓库的命令,git clone "仓库地址",然后查看是否拉取成功。 3.在本地把需要删除的文件…

gitlab怎么删除项目

首先点击setting–general–advanced-expand展开 滑到最下面找到remove project 将要删除的项目名称输入到框里,删除

怎样删除Github中的项目

我们在GitHub上创建项目的时候,如果想要删除当前项目,怎样进行操作呢,下面就简单介绍一下怎样去删除GitHub中的项目 1、选择要删除的项目 2、进入项目中的setting(设置)中 3、一直下拉,看到有红色字体出现&…

如何在GitLab与GitHub中删除项目(仓库)

文章目录 一、GitLab中删除项目1、进入Projects找到要删除的项目2、选中左下角Settings中的General3、点击Advanced栏下的Expand4、然后滑到最下面的Remove project5、输入要删除项目的名字,确认删除 二、GitHub中删除仓库1、找到要删除的仓库,点击右上方…

删除Github中项目步骤

这里写自定义目录标题 删除Github中项目步骤1、选择要删除项目2、点击“Setting”3、一直拉到最后,选择“Delete this repository”4、位置①就是你的项目名称,直接复制到位置②,点击位置③,即完成删除Github项目。 删除Github中项…

删除gitlab上仓库的分支

方法一:使用git命令来删除分支 1、进入相应的仓库,然后使用 git branch -a 命令查看该仓库所有的分支 2、删除相应的分支,这里以删除 “Redefine-PinDir-for-MoroccoA” 为例,执行git push origin --delete Redefine-PinDir-for…

gitlab中如何删除项目

1、首先,在你的项目列表中选择要删除的项目,点击进入; 2、点击Settings中的General, 然后点击Advanced settings 的Expend按钮; 3、滑到最下边,点击“Remove project” 4、在弹出框中输入要删除的项目名称即…