欢迎访问机房运维工作室

爱数知识库

AnyBackup-PostgreSQL 数据库备份失败,提示错误信息:错误,执行数据库命令 show data_directory; 失败。

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

AnyBackup-PostgreSQL 数据库备份失败,提示错误信息:错误,执行数据库命令 show data_directory; 失败。

关键字

PostgreSQL、show data_directory

适用产品

  • 超易备 5.0.4
  • AnyBackup 6.0.21-6.0.28
  • AnyBackup CDM 7.0.x
  • AnyBackup Express 7.0.x

问题描述

在 AnyBackup 管理控制台上执行 PostgreSQL 备份失败,执行输出提示如下错误信息:

错误,执行数据库命令 show data_directory; 失败。

问题影响

PostgreSQL 数据库备份失败。

问题原因

授权 PostgreSQL 实例的用户没有超级用户权限。

解决方案

为了解决该问题,有如下两种方案:
方案一,用具有超级用户权限的用户授权 PostgreSQL 实例,操作步骤如下。

1. ssh 远程登录 PostgreSQL 数据库服务器,切换到 PostgreSQL 数据库对应的系统用户下,登录 psql ,查看具有超级用户权限的用户,执行命令如下:

su - postgres
psql
\du


注意:上图示例中,csm,postgres,root 以及 xxx 都是超级用户,但是 xxx 用户无法登录,所以可用 csm,postgres 和 root 用户授权实例,具体以实际情况为准。

2. 用操作员登录 AnyBackup 管理控制台,选择资源>客户端>默认组,选中 PostgreSQL 数据库服务器对应的客户端,选择权限配置,点击,再点击展开实例,点击已授权,填写具有超级用户权限的用户和密码,重新授权。


方案二,给当前授权实例的用户授予超级用户的权限,操作步骤如下。

1. 用操作员登录 AnyBackup 管理控制台,选择资源>客户端>默认组,选中 PostgreSQL 数据库服务器对应的客户端,选择权限配置,点击,再点击展开实例,点击已授权,查看授权实例的用户。


注意:上图示例中,授权实例的用户是 lss ,具体以实际情况为准。

2. ssh 远程登录 PostgreSQL 数据库服务器,切换到 PostgreSQL 数据库对应的系统用户下,登录 psql ,授予 lss 用户超级用户权限,执行命令如下:

警告:超级用户权限拥有所有权限,需慎重考虑是否给用户授予超级用户权限。
su - postgres
psql
alter user lss superuser;
\du


注意:上图示例中,\du 命令查看 lss 用户对应的属性栏目中包含超级用户就表示授权 lss 用户超级用户权限成功。

3. 在 AnyBackup 管理控制台上重新发起备份。

更多信息

更多关于 PostgreSQL 操作介绍,请参考:PostgreSQL 介绍