环境说明:
DB:Oracle 11.2.0.4.0 RAC
OS:AIX 7.1
问题现象:
XX数据库每天跑批中调用的expdp备份时间由7分钟延长到14分钟,需要优化。
问题分析:
1.检查备份脚本,最近没有修改过。
2.检查数据库变化,无明显数据量增长。
3.检查备份时间段AWR报告,发现了可疑的等待事件Streams AQ: enqueue blocked on low memory比较严重。
在备份期间,一共等待了243次,平均耗时1737ms,一共耗时7分钟,此等待事件表示备份时获取stream pool空间发生了等待。
经检查,select shrink_phase_knlasg from X$KNLASG;值长时间返回1,表示stream pool空间已经收缩完成,但是收缩标志没有自动刷新,从而导致该等待事件严重,和BUG 27634991吻合。
SQL> select shrink_phase_knlasg from X$KNLASG;
SHRINK_PHASE_KNLASG
-------------------
1
解决方案:
需要手动完成stream pool收缩工作。
手动刷新收缩标志
SQL> show parameter event
生产环境需要充分测试后在操作。
SQL> alter system set events 'immediate trace name mman_create_def_request level 6';
查看shrink_phase_knlasg是否变回0。
SQL> select shrink_phase_knlasg from X$KNLASG;
第二天查看备份速度是否有提高。
其他:
Oracle 性能优化-EXPDP备份速度优化01
http://blog.itpub.net/29785807/viewspace-2219526/
Oracle 性能优化-expdp备份速度优化02
http://blog.itpub.net/29785807/viewspace-2675519/
#####chenjuchao 20210901 10:30#####
欢迎关注我的公众号《IT小Chen》