其他分享
首页 > 其他分享> > DM锁等待解决办法

DM锁等待解决办法

作者:互联网

一、锁等待 方法1 1.1 查询正在运行的事务 SELECT SESS_ID,SQL_TEXT,STATE FROM V$SESSIONS WHERE SESSID IN (select SESS_ID from v$trx where status='ACTIVE'); 1.2 通过SESS_ID关闭会话 delete(会话过多无法判断请采用“方法二”) SP_CLOSE_SESSION(142344256); 如果是MPP环境,以下命令需要在MPP多个节点同时进行执行: ./disql 用户名/密码#{MPP_TYPE=local} --注意:MPP集群需要local登录 SP_SET_SESSION_LOCAL_TYPE (1); ---允许MPP主备执行DDL操作 SP_CLOSE_SESSION(142344256); 关闭后,此会话会显示网络通信异常 再次查询只能看见update语句会话   方法2: 2.1 查看被堵塞的事务 (事务ID:TRX_ID) SELECT VTW.ID AS TRX_ID, VS.SESS_ID ,VS.SQL_TEXT ,VS.APPNAME ,VS.CLNT_IP FROM V$TRXWAIT VTW LEFT JOIN V$TRX VT ON (VTW.ID=VT.ID) LEFT JOIN V$SESSIONS VS ON (VT.SESS_ID=VS.SESS_ID);   2.2 查询被阻塞的事务是由哪个事务造成的阻塞 (等待事务ID:WAIT_FOR_ID) SELECT WAIT_FOR_ID,WAIT_TIME FROM V$TRXWAIT t WHERE ID=146479;   2.3 通过等待事务ID定位到会话以及执行的语句 SELECT VT.ID AS TRX_ID,VS.SESS_ID,VS.SQL_TEXT ,VS.APPNAME ,VS.CLNT_IP FROM V$TRX VT LEFT JOIN V$SESSIONS VS ON (VT.SESS_ID=VS.SESS_ID) WHERE VT.ID = 146457;   2.4 SP_CLOSE_SESSION关闭等待事务(SESS_ID) 无现象结果 再次查询 无堵塞会话

标签:解决办法,SESS,DM,TRX,VS,VT,MPP,等待,ID
来源: https://www.cnblogs.com/zqntx/p/16285996.html