AnyBackup-CDM Linux 环境下 Oracle 单机异机挂载恢复失败,提示错误信息:ORA-00845: MEMORY_TARGET not supported on this syst
关键字
ORA-00845
适用产品
- AnyBackup CDM 7.0.x
问题描述
在 AnyBackup CDM 管理控制台上,执行 Linux 环境下 Oracle 单机异机挂载恢复失败,任务执行输出中显示如下错误信息:
连接恢复的目标数据库实例失败,原因:数据库报错 ORA-00845: MEMORY_TARGET not supported on this system。

问题影响
AnyBackup CDM 执行 Oracle 单机异机挂载恢复失败。
问题原因
异机操作系统上 /dev/shm 共享内存文件系统空间小于 Oracle 实例参数文件 MEMORY_TARGET 所配置的内存值。
解决方案
为解决此问题,需要修改异机 MEMORY_TARGET 参数值配置或增加 /dev/shm 共享内存文件大小,请按照以下步骤执行:
方案一,修改 Oracle 挂载恢复对应实例参数 MEMORY_TARGET 的值,使得 MEMORY_TARGET 值小于/dev/shm 共享内存文件大小
1. 在操作系统终端上执行 df -h 命令,查询操作系统 /dev/shm 大小。

2. vi 编辑客户端安装目录 ClientService 下的 oracleEnv.config 配置文件,添加一行 orcl.MemTarget = 3072M 。

注意:orcl.MemTarget 参数中 orcl 为 Oracle 实例名,具体以挂载恢复任务配置的实例名为准。orcl.MemTarget 参数配置的实际大小应小于步骤1查询到的 /dev/shm 可用容量。
3. 重启客户端服务器的AnyBackupClient服务。
4. 重新执行 AnyBackup CDM 挂载恢复任务。
方案二,增加 /dev/shm 共享内存文件的大小
1.在操作系统上使用 free -m 命令查询主机内存大小和 Swap 分区大小。

2. vi 编辑 /etc/fstab 中 tmpfs 行,设置 tmpfs 的 size 大小。

注意:/dev/shm 值默认为物理内存大小的一半,可以适当调大,但应小于步骤1中查询结果 Mem 与 Swap 大小之和。为了解决问题 /dev/shm 必须大于原备份 Oracle 实例 MEMORY_TARGET 值。示例中备份的 Oracle 实例 MEMORY_TARGET 大小为8G,且异机操作系统上物理内存大小与 Swap 分区之和为11.6G,故配置 size=8G。具体以实际环境为准。
3.执行如下命令重新挂载 /dev/shm 内存文件系统。
mount -o remount /dev/shm
4. 重新执行 AnyBackup CDM 挂载恢复任务。
更多信息
关于 Ora-00845 内存设置更详细的介绍,请参考 Oracle 官方文档: Troubleshooting Memory Size Error Oracle 。