什么相当于 Oracle 中的堆转储
What is the equivalent of a heap dump in Oracle
正在阅读有关 Oracle 数据库的一些资料,并且我正在学习共享池。
我用这个作为我的主要参考:https://docs.oracle.com/database/121/TGDBA/tune_shared_pool.htm#TGDBA558
读完这篇文章后,我仍然不清楚的是我们如何获得共享池的“转储”
例如,假设我有一个应用程序由于共享池压力过大而出现内存消耗问题/错误...我将如何找出正在消耗的存储过程、字符串变量内容等使用所有存储空间?
在 Java 中,我们将简单地进行堆转储。堆转储显示包,类,内存中的原始数据。
Oracle 中的堆转储相当于什么?
看看Oradebug
来自页面:
Oradebug is a command that can be executed from SQL*Plus (or Svrmgrl
in Oracle 8i and lower releases) to display or dump diagnostics
information.
转储Oracle 的共享池时,您将得到一个数十GB 的文件。您将阻止整个数据库直到完成。
这是您通常不想在生产数据库上执行的操作。
Oracle 的诊断能力是JVM 无法提供的。
- 要简要了解内存使用情况,您可以使用
V$SGASTAT
和 v$sga_resize_ops
- 首先你也可以回顾过去,可以分析过去的问题。 google 用于 AWR、ASH、STATSPACK 报告。
- 阻塞问题可以使用挂起分析工具
- 对于数据一致性问题,您可以使用审计或 logminer
- 要详细跟踪单个会话,您可以使用 tkprof、trca 甚至实时 sql 监控。或
v$active_session_history
.
Oracle 有一个叫做 wait interface 的东西,所以每当数据库花费一些时间做某事时,一些计数器就会增加。有多种工具可以访问这些计数器。他们每个人都有特定的用途。
所以是的,您也可以转储 Oracle 的共享池,但这通常是最后的手段,如何诊断 Oracle 中的问题。
正在阅读有关 Oracle 数据库的一些资料,并且我正在学习共享池。
我用这个作为我的主要参考:https://docs.oracle.com/database/121/TGDBA/tune_shared_pool.htm#TGDBA558
读完这篇文章后,我仍然不清楚的是我们如何获得共享池的“转储”
例如,假设我有一个应用程序由于共享池压力过大而出现内存消耗问题/错误...我将如何找出正在消耗的存储过程、字符串变量内容等使用所有存储空间?
在 Java 中,我们将简单地进行堆转储。堆转储显示包,类,内存中的原始数据。
Oracle 中的堆转储相当于什么?
看看Oradebug
来自页面:
Oradebug is a command that can be executed from SQL*Plus (or Svrmgrl in Oracle 8i and lower releases) to display or dump diagnostics information.
转储Oracle 的共享池时,您将得到一个数十GB 的文件。您将阻止整个数据库直到完成。 这是您通常不想在生产数据库上执行的操作。
Oracle 的诊断能力是JVM 无法提供的。
- 要简要了解内存使用情况,您可以使用
V$SGASTAT
和v$sga_resize_ops
- 首先你也可以回顾过去,可以分析过去的问题。 google 用于 AWR、ASH、STATSPACK 报告。
- 阻塞问题可以使用挂起分析工具
- 对于数据一致性问题,您可以使用审计或 logminer
- 要详细跟踪单个会话,您可以使用 tkprof、trca 甚至实时 sql 监控。或
v$active_session_history
.
Oracle 有一个叫做 wait interface 的东西,所以每当数据库花费一些时间做某事时,一些计数器就会增加。有多种工具可以访问这些计数器。他们每个人都有特定的用途。
所以是的,您也可以转储 Oracle 的共享池,但这通常是最后的手段,如何诊断 Oracle 中的问题。