ITPub博客

首页 > 数据库 > Oracle > expdp/impdp变慢 (Doc ID 2469587.1)

expdp/impdp变慢 (Doc ID 2469587.1)

原创 Oracle 作者:gopaypal 时间:2022-12-07 11:03:43 0 删除 编辑

一、数据库环境

      OS:  Linux  2.6.32-754.12.1.el6.x86_64 #1 SMP Tue Apr 9 14:52:26 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

      DB: 11.2.0.4.0


二、逻辑备份脚本

$ cat /home/oracle/expdp/expbak.sh 


. ~/.bash_profile


cd /oracle/expdp

v_date=`date '+%Y%m%d'`

mkdir $v_date

echo "**************"$v_date" Backup begin **************" >>expbak.log 

v_begin_date=`date '+%T'`

expdp \"\/ as sysdba\" directory=dump dumpfile=devdb_$v_date.dmp logfile=devdb_$v_date.log schemas=USER1,USER2,TESTUSER,USERLOCAL,USER4,USERQAS,USER5,USER6,USERDEV,APPUSER compression=all


mv devdb_$v_date* $v_date/

find /oracle/expdp/ -type f -mtime +14 -exec rm -fr {} \;

echo  "**************"$v_date" Backup end  **************" >>expbak.log

三、逻辑备份速度的异常缓慢

      由于此开发数据库库一直由开发人员自己维护,从日志中抓取,每天的逻辑备份也成功完成并未出错,所以,一直并没有人关注它的耗时。从备份日志以及实际的dump文件大小来看,备份耗时约 85分钟,但实际的dump大小仅 2 GB。


 附:备份日志的部分内容


$ tail -100  expdat.log


……

**************20221119 Backup begin **************

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Nov 19 07:39:43 2022 elapsed 0  01:25:36

**************20221119 Backup end  **************

**************20221120 Backup begin **************

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Sun Nov 20 07:40:27 2022 elapsed 0  01:26:21

**************20221120 Backup end  **************

**************20221121 Backup begin **************

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Nov 21 07:38:23 2022 elapsed 0  01:24:17

**************20221121 Backup end  **************

**************20221122 Backup begin **************

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Tue Nov 22 07:39:36 2022 elapsed 0  01:25:30

**************20221122 Backup end  **************

**************20221123 Backup begin **************

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Wed Nov 23 07:39:30 2022 elapsed 0  01:25:23

**************20221123 Backup end  **************




四、分析排查

        根据等待事件分析,在逻辑备份期间频繁出现”Streams AQ: Enqueue Blocked On Low Memory" 。通过

官方support检查,发现Doc ID 2469587.1 文档中介绍的场景与此案例比较吻合。

       描述如下:

     由于频繁等待 ”Streams AQ: Enqueue Blocked On Low Memory" 而导致Datapump Expdp或Impdp变慢 (Doc ID 2469587.1)”对该等待事件有描述:

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


五、解决方案

    根据  Doc ID 2469587.1 中介绍的办法,依照以下步骤处置:

1、查询是否出现“回缩”现象

      SQL> select shrink_phase_knlasg from X$KNLASG;

      SHRINK_PHASE_KNLASG

       -------------------

        1

2、使用事件修复“回缩”标志失败的BUG

      SQL> alter system set events 'immediate trace name mman_create_def_request level 6';

       System altered.


3、再次查询

      SQL> select shrink_phase_knlasg from X$KNLASG;

     SHRINK_PHASE_KNLASG

      -------------------

      0


六、再次运行逻辑备份脚本

       日志如下(摘录):

**************20221124 Backup begin **************

Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Nov 24 15:37:56 2022 elapsed 0 00:06:29

**************20221124 Backup end  **************


        脚本耗时由 85分钟 减少到 6分29秒,速度改进约  14倍 。



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

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2022-11-24

  • 博文量
    3
  • 访问量
    2398