AnyBackup-Oracle 定时备份恢复失败,执行输出提示:ORA-19870,Failed to restore the Oracle data to be read
关键字
ORA-19870,Failed to restore the Oracle data to be read
适用产品
- AnyBackup Enterprise 7.0.x
- AnyBackup Express 7.0.x
- AnyBackup CDM 7.0.x
问题描述
在使用 AnyBackup 进行 Oracle 定时备份进行恢复时,任务执行失败。执行输出中提示如下错误:
Failed to restore the Oracle data to be read,please check whether this file recovery directory has write permission and storage space sufficient.(Error provider: oracleschedule,error value 425984049,error location: ncOracleExecThread.cpp:396)

问题影响
AnyBackup 无法完成 Oracle 定时备份恢复。
问题原因
Oracle 数据库恢复时使用的 Blksize 和备份时使用的 Blksize 大小不一致,导致 AnyBackup 读取 Oracle 数据库备份数据时无法正常读取,从而出现该错误。
解决方案
为了解决该问题,需要在进行数据库恢复前将 Blksize 参数设置为和备份时一致。具体步骤如下:
1. 检查 Oracle 数据库备份时使用的 Blksize 大小。
a. 使用操作员或租户登录 AnyBackup web页面;
b. 点击【定时数据保护】-【数据备份】-【历史记录】;
c. 找到并查看恢复选择对应备份时间点的执行输出中 allocate channel 相关信息,获取备份时使用的 Blksize 。如下

注: 示例图中使用的 Blksize 大小为 4M。
2. 执行恢复任务前,设置 Blksize 大小与备份时一致。
a. 使用 ssh 工具以 root 用户登录恢复目的端;
b. 使用 vi 命令编辑 AnyBackup 客户端安装目录/etc/ClientService/oracleEnv.config 配置文件,修改 Blksize 参数值与备份时一致。如下:
vi /aishu/AnyBackupClient/etc/ClientService/oracleEnv.config 找到 Blksize 参数并修改为如下内容:
Blksize = 4M
键入 ESC ,再输入 :wq 保存退出。
注:其中 /aihsu 为 AnyBackup 客户端安装目录,实际环境请修改为对应目录。
3. 重新发起 Oracle 定时恢复即可。
更多信息
Blksize 在未设置的情况下,默认大小为 0.25 MB.