文档解释
ORA-02815: Unable to attach shared memory
Cause: Shmat(2) failed.
Action: Check the UNIX number. If you are unsure about what it means, contact ORACLE customer support.
ORA-02815 is an Oracle error that indicates that the Oracle shared memory segment size is being exceeded. This error happens when Oracle is unable to allocate the requested memory from the kernel.
官方解释
常见案例
此错误可能是由于用户尝试使用太多的共享内存造成的,可能是由Oracle装载程序用于存储用户变量或查询的大内存块引起的。也可能是内存空间在某些复杂查询中由于临时表的使用而超出限制。
正常处理方法及步骤
1.检查当前进程是否已使用太多的内存,或者共享内存段是否太小。
2.如果发现共享内存段太小,建议通过使用alter system set sga_target和alter system set pga_aggregate_target来调整内存段大小。
3.如果没有发现共享内存段太小的问题,建议使用以下命令查看是否有内存暴涨:select sum(value)/1024/1024 from v$sesstat where name like ‘%Sort%’;
4.如果检测到内存暴涨,可以考虑使用checkpoints来释放内存来临时解决问题。
5.还可以考虑优化sql语句,减少临时表的使用。