1次 Oracle User 库的问题分析

今天下午,开发发邮件,说后台访问user库出现异常,同时流量产生了比较高的网络流量。

Caused by: org.apache.tomcat.jdbc.pool.PoolExhaustedException: [http-0.0.0.0-8080-40] Timeout: Pool empty. Unable to fetch a connection in 5 seconds, none available[size:7; busy:7; idle:0; lastwait:5000].

11

初步确定这个问题应该是在跑什么大语句导致的。

首先分析下这段时间的归档日志变化情况,可以看到最近一段时间的归档日志看到是从16:52到17:00时间段内日志切换和写入比较频繁:

select * from v$archived_log where first_time> sysdate-0.1 and dest_id=1;

2FD~QW6U{~@V

5[HCQN~K)]O3

我们再生成16:45到17:15这段时间的AWR报告做进一步分析
SQL>@$ORACLE_HOME/rdbms/admin/awrrpt.sql
可以看到是下面这个pay_payment_history_new表在频繁更新blocks
clipboard
clipboard2
通过上述分析和AWR的TOPSQL,最终确定了如下SQL:
insert into PAY_PAYMENT_HISTORY_NEW (ID, ORDER_ID,……) select ID, ORDER_ID,…….. from PAY_PAYMENT_HISTORY

共有 0 条评论

Top