【发布时间】:2021-09-20 10:05:49
【问题描述】:
我们在 Oracle Linux 8 机器上安装了 oracle DB (19c)。当我们将服务器与 19c db 连接时,DB 机器的内存开始增长。只要服务器处理负载并执行数据库操作,内存就会不断增长,几个小时后所有内存都会用完,并且没有更多可用内存。我们有简短的 PS/SQL 语句和存储过程,它们在执行不同的 CRUD、提交、回滚操作时执行。我们做了一些研究,发现这个命令可以释放内存,但这不起作用。
sync; echo 3 > /proc/sys/vm/drop_caches
注意:我们在 11g 数据库上发现了相同的行为,所以这不是特定于数据库版本的问题,我们也更改了数据库机器,但问题仍然存在。
附上我们机器内存已用完的屏幕截图。任何帮助将不胜感激。
【问题讨论】:
-
记得关闭光标。
-
请edit您的问题包含minimal reproducible example,包括:与内存泄漏相关的
CREATE TABLE和CREATE PROCEDURE语句;您用于与内存泄漏相关的 CRUD 的代码; 您为调试内存泄漏所做的工作的详细信息。从带有进程列表的屏幕截图中调试任何东西实际上是不可能的;您需要提供代码。
标签: database oracle memory-management memory-leaks oracle19c