AnyBackup-DB2 数据库异机浏览恢复失败,执行输出提示:SQL2539W 警告!
关键字
DB2、SQL2539W
适用产品
· AnyBackup 6.0.x
问题描述
在 AnyBackup 管理控制台上执行 DB2 数据库异机浏览恢复失败,点击查看详情,显示如下错误信息:
错误,DB2 恢复数据库 LEE1时遇到错误:2539:SQL2539W 警告!正在复原与备份映像数据库相同的现有数据库。数据文件将被删除。

问题影响
AnyBackup 无法完成 DB2 数据库的异机浏览恢复。
问题原因
此问题的可能原因为以下两者之一:
· 原因一,选择恢复的目录存储空间不足。
· 原因二,数据库所属实例的用户对选择恢复的目录没有读写权限。
解决方案
请按照不同的问题原因,选择下面的步骤:
原因一,选择恢复的目录存储空间不足
1. 通过 SSH 工具登录 DB2 数据库异机服务器,执行 df -h <恢复路径> 命令,返回结果中的 Avail 列数值为恢复目录可用空间大小。
df -h /db2/data
下图示例中,恢复目录为 /db2/data/,可用空间为 18 GB 。

2. 通过 SSH 工具登录 DB2 数据库原机服务器,执行以下命令,统计单个数据库大小。对比 DB2 数据库原机服务器数据库总大小和第 1 步中查询的可用空间大小,如果异机服务器恢复目录可用空间小于原机数据库大小,需更换可用空间大于原机数据库大小的恢复目录。
call get_dbsize_info(?,?,?,0)
注意:下图示例中,DATABASESIZE 参数的值为 127877120,以 KB 为单位。

3. 配置浏览恢复选项时,重新选择第 2 步中确认空间充足的恢复目录,进行浏览恢复。

原因二,数据库所属实例的用户对选择恢复的目录没有读写权限
1. 执行以下命令,检查数据库所属实例的用户对选择恢复的目录是否有读写权限,下图示例中,恢复目录为 /db2/data/,目录的属主为 root,属组为 root,权限为 755, 数据库所属实例的用户为 db2inst1,无写权限。
ls -l /db2

2. 执行以下命令,赋予数据库所属实例的用户对恢复目录的读写权限。
注意:请向数据库管理员确认恢复目录是否允许更改权限,命令示例中,数据库所属实例的用户为 db2inst1,具体以实际环境为准。
chown db2inst1:db2inst1 /db2/data
ls -l /db2

更多信息
对于其它类型数据库的恢复,如 Oracle 、MySQL 等,AnyBackup 同时要求恢复的目的端磁盘空间充足,恢复前可查看原机数据文件大小,根据数据量大小调整恢复目的地,保证目标端磁盘空间充足。