AnyBackup - 达梦数据库备份任务在 DmAPService 服务正常的情况下发起后报错 err_msg=bakres 与 DMAP 消息通信失败
关键字
消息通信失败、err_code=-7169
适用产品
- AnyBackup CDM 7.0.x.x
- AnyBackup Enterprise 7.0.x.x
- AnyBackup Express 7.0.x.x
问题描述
达梦数据库备份任务在 DmAPService 服务正常的情况下运行时,提示如下错误信息:err_msg=bakres 与 DMAP 消息通信失败,err_code=-7169(错误提供者:dmBackup,错误值452132864)。

问题影响
达梦数据库备份任务失败。
问题原因
达梦数据库实例中 BAK_PATH 参数值所指向的目录不存在或权限不足导致。
解决方案
为了解决该问题,需要确保 BAK_PATH 参数值所指向的目录存在,并且达梦数据库实例运行账户对该目录有读写权限,请按照以下步骤执行:
1、连接达梦数据库实例,执行如下查询 sql 确认 BAK_PATH 参数值所指向的目录:
select para_name,para_value from sys.v$dm_ini where para_name='BAK_PATH';

2、根据步骤1的查询结果,在主机层面确认上述示例中的目录是否存在。
ls -lrt /data/dm5236/data/DAMENG/bak

3、如目录不存在,则创建指定的目录,并修改目录属组为达梦数据库实例运行账户。

4、如目录存在,但权限不足,则修改目录的属组。

注意:上述示例中,dmdba:dinstall 是达梦数据库实例的运行账户及属组。
更多信息
BAK_PATH 是达梦数据库的一个标准参数,备份时不加任何参数的话会默认将备份文件保存在 BAK_PATH 参数指定的备份目录下。在 DM V7 版本中,当使用第三方备份软件通过 DmAPService 进行备份时,会在 BAK_PATH 参数指定的目录下临时保存一些备份的元数据信息,因此 AnyBackup 会在备份任务运行前检查该目录是否存在。