ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle数据泵expdp遭遇Streams AQ: Enqueue Blocked On Low Memory等待事件

2021-06-30 15:00:52  阅读:365  来源: 互联网

标签:02 00 expdp APR 18 AQ Enqueue streams pool


 

Oracle数据泵expdp遭遇Streams AQ: Enqueue Blocked On Low Memory等待事件

 

版本:11.2.0.4.0

PSU+OJVM:11.2.0.4.201020

对数据库使用expdp做全库导出时,发现异常的慢。

每张小表的导出都要隔个几秒才会继续导出下一张表。

查看数据泵会话的等待事件信息如下:

10:00:51 SYS@test(586)> /

       SID    SERIAL# EVENT                                      SADDR            PROGRAM               USERNAME   STATUS    SQL_ID           SQL_FULLTEXT
---------- ---------- ------------------------------------------ ---------------- --------------------- ---------- --------- ---------------- -------------------------------------------------------
       526      56831 Streams AQ: enqueue blocked on low memory  00000000F6804560 oracle@testdb (DM00)  SYS        ACTIVE    87nt40c5wj7y5    BEGIN sys.kupc$que_int.put_status(:1, :2, :3); END;
       583      19087 Streams AQ: enqueue blocked on low memory  00000000F6756380 oracle@testdb (DW00)  SYS        ACTIVE    8rgw5q94paqsg    BEGIN sys.kupc$que_int.send(:1, :2, :3); END;

Elapsed: 00:00:00.00

 

查看当前steam pool的值,发现并不小。

14:50:09 SYS@test(1091)> select COMPONENT,CURRENT_SIZE/1024/1024 CURRENT_SIZE_MB from V$SGA_DYNAMIC_COMPONENTS where COMPONENT='streams pool';

COMPONENT                                          CURRENT_SIZE_MB
-------------------------------------------------- ---------------
streams pool                                                   128

Elapsed: 00:00:00.01

 

搜索mos,根据由于频繁等待 ”Streams AQ: Enqueue Blocked On Low Memory" 而导致Datapump Expdp或Impdp变慢 (文档 ID 2469587.1)

症状

Datapump导出和导入(expdp和impdp)可能会遇到突然严重的性能问题,因为DW和DM进程经常等待 "StreamsAQ: enqueue blocked on low memory"。

以下是expdp logtime = all命令的示例症状。 (logtime 参数在 12.1 及以上版本可用) 
导出空分区表需要0-3秒才能导出每个分区,而正常时通常需要不到一秒的时间。

 


11-APR-18 18:02:26.726: Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
11-APR-18 18:02:37.672: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME1>" 0 KB 0 rows
11-APR-18 18:02:40.677: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME2>" 0 KB 0 rows
11-APR-18 18:02:42.686: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME3>" 0 KB 0 rows
11-APR-18 18:02:45.699: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME4>" 0 KB 0 rows
11-APR-18 18:02:48.702: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME5>" 0 KB 0 rows
11-APR-18 18:02:50.712: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME6>" 0 KB 0 rows
11-APR-18 18:02:53.724: . . exported "<SCHEMA_NAME>"."<TABLE_NAME>":"<PART_NAME7>" 0 KB 0 rows

 

更改

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

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

 

SQL> select shrink_phase_knlasg from X$KNLASG;

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

 

 

 

原因

即使 streams pool 已经结束收缩,该标志也没有被修改,这导致各种 stream pool 操作(例如数据泵的内部操作)等待 "StreamsAQ: enqueue blocked on low memory"。

该问题是由于Bug 27634991引起的,在版本19.1及更高版本中修复了该问题。


 

解决方案

如果由于“StreamsAQ: enqueue blocked on low memory”等待事件导致expdp / impdp命令出现严重性能问题,并且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以防止发生此问题。

 

根据mos,查看我自己的环境:

14:52:16 SYS@test(1091)> select shrink_phase_knlasg from X$KNLASG;

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

Elapsed: 00:00:00.01

 

根据建议执行"alter system set events 'immediate trace name mman_create_def_request level 6';"后,expdp的日志刷刷比原来快了不少。

 

标签:02,00,expdp,APR,18,AQ,Enqueue,streams,pool
来源: https://www.cnblogs.com/PiscesCanon/p/14954473.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有