ITPub博客

首页 > 数据库 > Oracle > expdp突然变非常慢

expdp突然变非常慢

原创 Oracle 作者:lmxx2020 时间:2024-05-07 14:07:17 0 删除 编辑

检查日志expdp日志,发现已经表都已经基本上导出完成,都是0 KB 0 rows,就没是导出完成的标识。检查dba_datapump_jobs发现expdp任务还在执行中。

检查v$session,发现存在等待事件“Streams AQ: Enqueue Blocked On Low Memory”

检查mos关于该等待事件:

Bug 17365043 - Session hangs on "Streams AQ: enqueue blocked on low memory" (Doc ID 17365043.8)    

该文中说当发生该事件时,尝试去收缩STREAMS_POOL_SIZE就会hang住,也就是STREAMS_POOL_SIZE初始化一个较大的值,避免该池做收缩操作导致该堵塞,这是一个bug造成。

另外,由于频繁等待 ”Streams AQ: Enqueue Blocked On Low Memory" 而导致Datapump Expdp或Impdp变慢 (Doc ID 2469587.1)

提供了该事件堵塞发生的处理方式:

在Auto SGA环境(设置了sga_target或memory_target)下,当 buffer cache 负载较高并且 streams pool 中的内存正被移动到 buffer cache 时,可能会发生此问题。

如果遇到类似的性能问题时,请检查以下查询是否一直返回“1”。该值表示 streams pool 处于收缩阶段。当 streams pool 完成收缩时,该值应返回“0”,但如果它一直返回“1”,则您可能遇到此问题。也就是当遇到Bug 27634991在streams pool 完成收缩时,有可能还是“1”

select shrink_phase_knlasg from X$KNLASG;

SHRINK_PHASE_KNLASG
-------------------
1

碰到这种情况,在sqlplus运行以下命令强制streams pool缩小完成。

connect / as sysdba
alter system set events 'immediate trace name mman_create_def_request level 6';
可以应用Patch 27634991以防止发生此问题。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22967847/viewspace-3014567/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-01-09

  • 博文量
    106
  • 访问量
    90385