ORA-04035: unable to allocate string bytes of shared memory in shared object cache “string” of size “string”
Cause: More shared memory is needed than was allocated in the shared object cache.
Action: None
ORA-04035是由于在分配Oracle数据库共享内存上出现内部错误而引发的,表明无法从该共享内存对象(通常是library cache)中分配指定大小的内存。其直接错误信息通常是:
ORA-04035: unable to allocate string bytes of shared memory (“string” of “”string””)
解决此错误的一般步骤包括:
1.在确认ORA-04035之前,需要排除所有其它可能会导致ORA-04035之外的潜在错误;
2.如果此问题已经存在,则必须增加共享内存池的设置;
3.更改参数_shared_pool_reserved_min_alloc可以降低shared pool reserve消耗空间;
4.更改参数_shared_pool_reserved_pct可以增加shared pool reserve里存放内容的占比(或降低数据缓存块占比);
5.可以使用优化工具分析SQL,以确认在内存中的可用空间,并归约可以释放的数据空间;
6.最后,可以调整内存中的物理内存,使其充足,这是解决此问题的最终解决方案。