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)。
同一数据库的其他条目
- ORA-12520TNS:listener could not find available handler for requested type of server(监听程序找不到所请求服务器类型的可用处理程序)
- ORA-28001the password has expired(密码已过期)
- ORA-38029object statistics are locked(对象统计信息已锁定)
- ORA-27102out of memory(内存不足)
- ORA-04030out of process memory when trying to allocate N bytes(尝试分配 N 字节时进程内存不足)
- ORA-12537TNS:connection closed(TNS:连接已关闭)
- ORA-03135connection lost contact(连接失去联系)