欢迎访问机房运维工作室

爱数知识库

AnyBackup-PostgreSQL 数据库执行备份卡主,卡在通知数据库停止备份处

频道:爱数知识库 日期: 浏览:31

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

图片.png

登录 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;

image.png

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

chown postgre:postgre /home/postgres/archive/

3.在 AnyBackup 控制台上重新发起 PostgreSQL 数据库任务即可。


更多信息

PostgreSQL 数据库备份问题若是由归档引发的,则需要检查归档路径的权限是否正确,空间容量是否充足,归档命令可以正常执行。