2020-03-13
数据库11G RAC经常发生阻塞现象,无法定位源头

数据库环境:oracle11g RAC
这段时间数据库经常过几天就发生阻塞现象,每次杀掉阻塞的进程后其他被阻塞进程就开始正常运行,但是过几天又会有这类情况发生。查看数据库定时任务也没发现该任务,而且该任务进程一直只会在第一个节点出现。
涉及sql查询```language
--```注: 如果state值为Waiting,那么wait_time值无用。Second_in_wait值是实际的等待时间(单位:秒)。 --如果state值为Wait unknow time,那么wait_time值和Second_in_wait值都无用。 --如果state值为Wait short time,那么wait_time值和Second_in_wait值都无用。 --如果state值为Waiting known time,那么wait_time值就是实际等待时间(单位:秒),Second_in_wait值无用。 SELECT INST_ID "实例ID", SID, SERIAL#, PROCESS, USERNAME, SCHEMANAME, OSUSER, MACHINE, PROGRAM, SQL_ID, MODULE, ACTION, LOCKWAIT, BLOCKING_SESSION_STATUS, BLOCKING_INSTANCE "阻塞会话实例", BLOCKING_SESSION "阻塞会话SID", EVENT "等待事件", WAIT_CLASS, LOGON_TIME, CASE WHEN STATE = 'WAITING' THEN SECONDS_IN_WAIT WHEN STATE = 'WAITING KNOWN TIME' THEN WAIT_TIME END AS "等待时间(s)", STATE FROM GV$SESSION WHERE USERNAME IS NOT NULL AND STATUS = 'ACTIVE' AND LOCKWAIT IS NOT NULL; ```--查看阻塞会话SID信息(holder) --```考虑到多实例会存在sid一致的情况,所以加了实例区分 SELECT INST_ID "实例ID", SID, SERIAL#, PROCESS, USERNAME, SCHEMANAME, OSUSER, MACHINE, PROGRAM, SQL_ID, MODULE, ACTION, LOCKWAIT, BLOCKING_SESSION_STATUS, BLOCKING_INSTANCE, BLOCKING_SESSION "阻塞会话SID", EVENT "等待事件", WAIT_CLASS, LOGON_TIME, CASE WHEN STATE = 'WAITING' THEN SECONDS_IN_WAIT WHEN STATE = 'WAITING KNOWN TIME' THEN WAIT_TIME END AS "等待时间(s)", STATE FROM GV$SESSION WHERE INST_ID = '&INSTANCE' and SID = '&SID';
复制
–监控图
–被阻塞(waiter)相关截图
–阻塞源头信息(waiter)
–定时任务截图
问题:看阻塞源头上写着dbms_scheduler,以为是定时任务,但是在定时任务dba_scheduler和dba_jobs是找不到定时任务(business_data_purge)的,而且这个任务是大概几天会跑一次,每次只会在第一个实例上运行,无法定位到具体在哪个位置。
前几天试过把被阻塞的定时任务(purge_auto_mark)停了,但是今天发现应用很多进程还是被阻塞源头的任务(business_data_purge)阻塞了
我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
如何授权可以让普通用户执行dbms_spm 包, 不能授权dba角色?
回答 1
已采纳
GRANTADMINISTERSQLMANAGEMENTOBJECTtoUSER;
undo 的表空间 ,有什么命令让他赶紧写进磁盘 然后释放空间么?
回答 1
及时提交就行。不过释放空间是指的是释放undo的使用率。物理文件不释放。需要你新建一个文件,然后切换。
为什么执行完 删除分区 分区还是存在啊?
回答 2
已采纳
这个是清空分区表数据,表分区可以不用删除的,没影响。
不完全恢复某个pdb报错误
回答 3
验证了下setuntiltime"TODATE('2023041222:11:00','YYYYMMDDHH24:MI:SS')"和setuntilscn1476006这两种方式是可以做不完全恢复,但
Oracle的行级锁有开销吗?
回答 1
已采纳
在Oracle中,行级锁没有相关的开销,一点都没有。不论你是有1个行锁,还是1000000个行锁,专用于锁定这个信息的资源数都是一样的。当然,与修改1行相比,修改1000000行要做的工作肯定多得多,
在抓取awrrpt报告时报错,报错如图所示
回答 5
那就是没有生成awr报告,还有begin和end是必须输的。
oracle 19c 单实例 awr不自动收集
回答 5
前几天维护的时候晚上重启了一下,这几天忘记看了,现在awr收集正常了,打扰大家了
rhel8.4安装了19c,客户端无法连接
回答 3
已采纳
是虚拟机的问题,主机无法连接虚拟机。将网络模式改为桥接模式,虚拟机的IP跟主机选为一个网段,则连接成功了。谢谢大家
oracle11G数据库,经常出现ORA-04031错误。该如何优化?
回答 2
已采纳
1、问题原因1种:SGA区域比较小,可以将SGA区域的值,再设置大一些(至少达到服务器的内存的60%),然后在观察一段时间,看是否会在出现。若继续出现,那么要考虑以下几种因素,特别是AWRTOPSQL
Oracle 建表的时候没有创建子分区, 如果想增加只能重新创建表吗?
回答 1
已采纳
12c开始可以直接modify
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
热门文章
Oracle优化器如何估算基数--谓词越界后的范围查询
ORA-00257: archiver is stuck error
数据库周刊55丨2021年1月数据库排行榜出炉;openGauss荣获“2020年度国产数据库”称号;易鲸捷喜获“金鼎奖”;搭建Mysql MGR高可用集群;openGauss主备部署;AWR分析办法……
Oracle P6培训系列:14定义资源的计量单位
Oracle-is null 使用索引
oracle 虚拟列(Virtual Columns )
快速增加表的默认值的方法
oracle 区分32位还是64位
[译]如何配置 Linux 服务器以在持久内存上运行 Oracle Database 19c
Oracle SQL查询:如何写出高性能SQL语句