AnyBackup-Linux 环境下 Oracle 数据库备份失败,执行输出显示错误信息:申请读/写通道失败,原因:当前系统内存不足,无法满足通道使用内存。
关键字
系统内存、通道使用总内存
适用产品
- AnyBackup 7.0.10 - 7.0.12
问题描述
在 AnyBackup 管理控制台上,新建 Oracle 单机数据库备份任务,任务执行失败,执行输出中提示如下错误信息:
申请读/写通道失败,原因:当前系统内存不足,无法满足通道使用内存。
问题影响
AnyBackup 无法完成 Oracle 数据库的备份。
问题原因
在进行 Oracle 数据库备份时,为了防止内存资源耗尽,会先对通道使用总内存和系统剩余内存做对比,若系统剩余内存小于通道使用总内存,则会导致上述错误。
解决方案
针对上述问题,有下面两种方案解决,请根据实际情况选择。
方案一,增加系统内存,使剩余内存大于通道使用总内存,具体步骤如下:
1.SSH 登录数据库服务器,执行以下命令,确认当前系统内存剩余大小。
free -m
下图示例中表示系统剩余内存为 523MB。
2.登录 AnyBackup 管理控制台,选择该任务,点击详情,查看配置的通道数,确认当前通道使用总内存大小。

注意:通道使用总内存=(数据文件通道数和日志文件通道数较大的一个+1)*128MB,此处即 640 MB。
3.物理上增加系统内存,使得系统剩余内存大于通道使用总内存。
4.在 AnyBackup 管理控制台重新发起备份任务。
方案二,减小通道使用总内存,使其小于系统剩余内存,步骤如下:
1.SSH 登录数据库服务器,执行以下命令,确认当前系统内存剩余大小。
free -m
下图示例中表示系统剩余内存为 523MB。.png)
2.登录 AnyBackup 管理控制台,选择该任务,点击详情,查看配置的通道数,确认当前通道使用总内存大小。
.png)
注意:通道使用总内存=(数据文件通道数和日志文件通道数较大的一个+1)*128MB,此处即 640 MB。
3.编辑任务,通过减小通道数来减小通道使用总内存,使得通道使用总内存小于系统剩余内存。

4.在 AnyBackup 管理控制台重新发起备份任务。
更多信息
关于更多通道数配置说明,请参考 Oracle 定时备份恢复最佳实践第七章。