DBAtlas · 数据库运维图谱

ORA-00845: MEMORY_TARGET not supported on this system(此系统不支持 MEMORY_TARGET)

Oracle

含义

由于操作系统的共享内存配置不支持通过 MEMORY_TARGET / MEMORY_MAX_TARGET 请求的自动内存管理,实例无法启动。在 Linux 上,这通常是因为 /dev/shm 小于所请求的内存目标。

原因

MEMORY_TARGET 设置得大于 /dev/shm(以 tmpfs 挂载);或在启用 HugePages 的同时使用 MEMORY_TARGET(AMM);AMM 与 HugePages 不兼容,而 ASMM(SGA_TARGET)兼容。Oracle 自动内存管理通过在 /dev/shm 上创建文件来工作,如果该空间不足,实例将无法启动。

解决方法

使 /dev/shm 大于 MEMORY_TARGET:重新挂载 tmpfs(mount -o remount,size=8G /dev/shm),并在 /etc/fstab 中使其永久生效。或者,不使用 AMM 而采用单独设置:将 MEMORY_TARGET 和 MEMORY_MAX_TARGET 设为 0,并定义 SGA_TARGET 和 PGA_AGGREGATE_TARGET。如果使用 HugePages,禁用 AMM 并优先使用 ASMM(SGA_TARGET)。

在 DBAtlas 中打开 →

同一数据库的其他条目