在 Oracle 12.1.0.2 AIX Power9 上运行(是的,我知道现在是 2021 年,但那是我的客户)
执行一个包含 1000 个插入的 plsql 块作为纯文本并最终提交。
begin
insert into tab1 values (1);
insert into tab1 values (2);
...-- 998 more inserts
commit;
end;
它始终失败ORA-04030: out of process memory when trying to allocate 20504 bytes (callheap, KTI call freeable small pool)
相同的 plsql 块在数百个其他数据库上成功运行,包括这个版本和操作系统。
数据库已重新启动,除了我的之外没有任何会话。
内存参数为:
*.db_16k_cache_size=0
*.db_block_size=8192
*.db_cache_size=30g
*.java_pool_size=200m
*.large_pool_size=1g
*.lock_sga=TRUE
*.pga_aggregate_target=10g
*.shared_pool_size=8g
我试图使用内部参数 - 没有运气,同样的错误
*._use_realfree_heap=TRUE
*._realfree_heap_pagesize = 262144
更改_use_realfree_heap=FALSE
- 同样的错误。