AnyBackup-PostgreSQL 数据库执行备份卡主,卡在通知数据库停止备份处
关键字
PostgreSQL、任务卡住、归档日志
适用产品
- AnyBackup CDM 7.0.x
- AnyBackup Express 7.0.x
- AnyBackup Enterprise 7.0.x
问题描述
在 AnyBackup 控制台上执行备份任务,任务始终卡在“通知数据库停止备份“处。

查看 PostgreSQL 数据库的审计日志,提示如下错误信息:
archive command failed with exit code 1

登录 PostgreSQL 数据库,执行 show archive_command; 命令查看归档路径,ll 命令查看归档路径的权限,确认 PostgreSQL 数据库的实例用户对归档路径无写权限。

注意:上图示例中,/home/postgres/archive 为配置的归档路径,postgre 为实例启动用户,具体以实际环境为准。并且归档目录 archive 的属主属组是 root:root,postgre 用户对该改路径无写入的权限。
问题影响
PostgreSQL 数据库备份无法成功。
问题原因
PostgreSQL 数据库归档日志路径的权限不正确,导致 Postgre 无法将预写日志文件写入到归档路径中,进而导致备份任务执行归档命令超过60s,备份任务卡主。
解决方案
为了解决该问题,需要将归档路径的属主属组改为 PostgreSQL 数据库的实例用户 postgre,具体步骤如下。
1. 登录 PostgreSQL 数据库,查看归档路径,执行命令如下:
psql -d postgres
show archive_command;

2.切换到步骤1查询的 /home/postgres/ 路径下,修改归档目录的属主属组,执行命令如下:
chown postgre:postgre /home/postgres/archive/

3.在 AnyBackup 控制台上重新发起 PostgreSQL 数据库任务即可。
更多信息
PostgreSQL 数据库备份问题若是由归档引发的,则需要检查归档路径的权限是否正确,空间容量是否充足,归档命令可以正常执行。