暂无图片
cpu激增100%,导致oracle无法连接
我来答
分享
紫气东来
2020-07-20
cpu激增100%,导致oracle无法连接

cpu激增到100%,导致oracle无法连接,重启后生成awr报告发现有一insert一直hang住,执行不结束,哪位给点指点,什么原因,附件是awr报告33.png11.png44.png22.png55.png88.png77.png

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
www_heql

个人建议:
如果平时不高,突然激增的话,
1、看下连接数数量是否异常;
2、看报告SQL order by CPUtime排名靠前的两个SQL语句占CPU最高,看看是否可以优化。是否有绑定变量。
3、看报告SQL order by Version Counter,这些insert语句是否相似,是否绑定变量。

暂无图片 评论
暂无图片 有用 0
打赏 0
紫气东来

SQL order by cpu time中就是2个insert语句消耗的大,一直没有执行完。
SQL语句都是这样的,select个数可能不一样:
insert into T(col1,col2,…) select :var1,:var2,… from dual union all select :var1,:var2,… from dual union all select :var1,:var2,… from dual;

我看SQL order by Version Counter中version count 大于200的都没执行完,低于200的执行完了

暂无图片 评论
暂无图片 有用 0
打赏 0
杨卓

TOP EVENT 53%resmgr :cpu quantum
参考https://www.eygle.com/archives/2011/07/events_resmgr_cpu_quantum.html
http://www.oracleplus.net/arch/1315.html
https://blog.csdn.net/u014346634/article/details/84961607
High “Resmgr:Cpu Quantum” Wait Events In 11g Even When Resource Manager Is Disabled (Doc ID 949033.1)
Resource Manager and SQL Tuning Advisory DEFAULT_MAINTENANCE_PLAN (Doc ID 786346.1)
等待事件 ‘resmgr:cpu quantum’ 是资源管理器用来控制 CPU 分配给进程的标准事件。当会话等待 ‘resmgr:cpu quantum’ 时,会话正在等待分配一个CPU时间额度 。

思路:1.对CPU的限制调整加大;
2.禁用资源调整,一般都是建议关闭资源调整
参考:禁用资源调整:
1.在线修改;
如果resource_manager_plan null可以无需重复设置
ALTER system SET resource_manager_plan=’’;
EXECUTE dbms_scheduler.set_attribute(‘WEEKNIGHT_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘WEEKEND_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘MONDAY_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘TUESDAY_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘WEDNESDAY_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘THURSDAY_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘FRIDAY_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘SATURDAY_WINDOW’,‘RESOURCE_PLAN’,’’);
EXECUTE dbms_scheduler.set_attribute(‘SUNDAY_WINDOW’,‘RESOURCE_PLAN’,’’);

2.如果上述操作没有生效,或者能够重启的情况下执行
alter system set “_resource_manager_always_on” = false scope=spfile;

image.png

对于这个AWR报告来说
DBTIME总时间占比 53%resmgr :cpu quantum
36% SQL

观察sql执行计划有无异常,SQL执行效率有无优化空间。

暂无图片 评论
暂无图片 有用 0
打赏 0
孙琳

CPU冲高可能是结果 可以查看DBA_HIST_ACTIVE_SESS_HISTORY确认异常开始时间点 关注insert语句执行过程中等待事件和堵塞源头

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
在使用dataguard的时候,我执行了alter system set log_archive_dest_state_2='defer'后,备库还是能同步数据是怎么回事?
回答 2
已采纳
这里有两张图说明了DG的运行原理主库修改数据,记录写在redobuffer,主库的LNS进程会读取redobuffer内容,传递给备库;备库RFS进程接受传过来的数据,写进standbylog,然后将
oracle 时间类字段加复合索引,为什么不推荐放在前面?
回答 3
已采纳
你可以设想一下,假如你有一个大型超市的收银流水表,记录着每一个收银员在某个时间收到的每一笔钱。。如果我们在这张表的收银员的名字列和收银时间列上创建一个组合索引,当我们用收银员'张三'and收银时间be
Oracle如何删除大表的重复记录
回答 4
已采纳
这个当然是用开窗函数结合rowid定位记录更快,这样就只要根据rowid删数据就好了。createtabletemprdasselectrdfrom(selectrowidrd,rownumber()
怎么查看oracle定时任务有没有执行成功?
回答 2
已采纳
thisdate为空说明上一次执行完了,存储过程是否成功运行,需要在存储过程中增加日志记录到相关表里,获取执行情况
Oracle 19c,操作系统是windows server2019,做冷迁移的时候,控制文件报拒绝访问,无法打开文件,怎么处理?
回答 2
控制文件损坏了?冷备时没有把库完全关闭吗?v
sqlserver 2000数据库迁移到Oracle11g,除了ogg还有啥好方案没?
回答 4
已采纳
可以使用cloudcanal 
Oracle删除存储过程需要注意什么问题?
回答 1
已采纳
存储过程之间可以相互调用,如果删除了被调用的存储过程,那么重新编译时调用者会出现错误,所以在执行删除操作时最好要分清各个存储过程之间的关系。
standby无法open
回答 5
我这边是parametervalueconvert没配置好导致的
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 能直接升级到21c吗?还是要先升级到19c
回答 1
直接可以升级到21c的版本:oracle数据库12.2.0.1,18c,19c所以您这个可以直接升级到21c
审计日志 adump 可以rm 清除吗?
回答 1
不需要审计查看的话可以直接清理