ORA-27102: out of memory(内存不足)
Oracle含义
在启动期间,Oracle 实例无法从操作系统分配所请求的共享内存(SGA)段。通常与 ORA-27102 以及更底层的 OSD/Linux 错误代码一同出现(例如 Linux-x86_64 Error: 28: No space left on device)。
原因
为 SGA 请求的内存超过内核共享内存限制(shmmax、shmall);服务器物理 RAM/swap 不足;或 HugePages 配置缺失/不足,无法分配大型 SGA。在增大 SGA_MAX_SIZE 之后很常见。
解决方法
增大内核共享内存参数:在 /etc/sysctl.conf 中将 kernel.shmmax 和 kernel.shmall 设置为足以覆盖 SGA 的值,然后运行 sysctl -p。如果使用 HugePages,根据 SGA 计算并设置 vm.nr_hugepages。检查服务器的总 RAM 和 swap;必要时降低 SGA_MAX_SIZE / SGA_TARGET。
同一数据库的其他条目
- ORA-28001the password has expired(密码已过期)
- ORA-38029object statistics are locked(对象统计信息已锁定)
- ORA-00845MEMORY_TARGET not supported on this system(此系统不支持 MEMORY_TARGET)
- ORA-04030out of process memory when trying to allocate N bytes(尝试分配 N 字节时进程内存不足)
- ORA-12537TNS:connection closed(TNS:连接已关闭)
- ORA-03135connection lost contact(连接失去联系)
- ORA-01033ORACLE initialization or shutdown in progress(ORACLE 正在初始化或关闭)