Ubuntu 18.04下Barman 2.3-2全量备份无法触发问题咨询
故障现象
Ubuntu 18.04环境部署Barman 2.3-2版本时,增量备份可正常运行,但全量备份触发后流程卡住,执行备份命令返回以下输出后不再推进:
Backup start at LSN: This is the first backup for server h8 WAL segments preceding the current backup have been found: from server h8 has been removed Starting backup copy via rsync/SSH for 20220613T132933 (5 jobs)
排查步骤
按优先级从高到低依次排查:
- 验证rsync/SSH链路可用性
备份卡在rsync启动阶段,首先切换到barman系统用户,手动测试到目标数据库节点h8的免密登录:sudo -u barman ssh postgres@h8,确认无密码输入提示、无首次连接的主机指纹确认交互。登录成功后手动执行rsync文件传输测试,确认两端rsync命令可正常调用、目标端PostgreSQL数据目录有读取权限。禁止用root用户做连通性测试,避免用户权限环境不一致导致误判。 - 检查全量备份前置依赖状态
执行barman check h8查看所有检查项结果,重点确认以下配置:- PostgreSQL端
wal_level参数设置为replica及以上级别 max_wal_senders剩余可用连接数大于并发备份任务数pg_hba.conf已放通Barman服务器的replication连接权限- WAL归档进程正常运行,无归档积压或失败
注意输出中Backup start at LSN:后为空,说明Barman未正常从PostgreSQL端获取到备份启动的LSN位点,可登录PostgreSQL端手动执行select pg_start_backup('barman_test');验证备份启动接口是否正常,若执行报错则根据报错修复WAL、复制槽相关异常。
- PostgreSQL端
- 验证并发配置兼容性
输出显示当前备份启动了5个并发rsync任务,先修改h8节点对应的Barman配置,将parallel_jobs参数临时调整为1,清理残留的临时备份目录后重新触发全量备份,排查是否为并发场景下的文件锁、带宽占满、连接数超限问题。 - 抓取详细执行日志定位卡点
加最高级别的verbose参数执行备份:barman backup -vvv h8,查看rsync阶段的具体报错,常见卡点原因包括:目标端数据目录存在被其他进程锁定无法读取的文件、两端磁盘空间不足、防火墙拦截rsync传输流量、SELinux/AppArmor权限拦截。
对应修复方案
- SSH/rsync链路异常:重新配置barman用户到目标端postgres用户的免密登录,将Barman服务器的barman用户公钥写入目标端
~postgres/.ssh/authorized_keys,设置.ssh目录权限为700、authorized_keys文件权限为600,提前将目标端主机指纹写入barman用户的known_hosts文件,避免交互流程卡住备份。 - LSN获取失败:先删除PostgreSQL端残留的无效复制槽、未正常关闭的备份标记,执行
select pg_stop_backup();清理可能残留的备份状态,重建Barman专用的物理复制槽后重新触发备份。 - 并发适配问题:单并发备份验证通过后,再根据服务器带宽、IO性能逐步上调
parallel_jobs数值,可在rsync配置中增加带宽限制参数,避免管理网带宽被打满导致传输超时。 - 残留文件干扰:执行
barman cron同步所有WAL归档,删除/var/lib/barman/h8/目录下对应失败备份ID的临时缓存目录,重新触发全量备份即可。
内容的提问来源于stack exchange,提问作者Ramapandian Jayaraman
相关产品推荐
相关产品推荐

