为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:1-2-38-21.07.15-143663-10018-ENT Pack2
【操作系统】:window2012 R2
【CPU】:Intel E3-1225 V6
【问题描述】*:给表添加字段时一直提示表被锁住,返回-6407错误码?按照网上的教程清空“v$sessions”的sess_id也没有用;sess_id会自动源源不断的冒出来
可以从v$sessions视图里面看看新的session是什么IP地址,什么应用连上来操作的,从源头进行控制即可
因为业务不断在修改表导致锁超时,可在业务不繁忙时进行添加字段操作。
也可以在添加字段时,另起一个会话使用下列语句查看被哪个会话及sql堵塞。
select t.id,s.* from v$trxwait w join v$trx t on w.wait_for_id =t.id join v$sessions s on t.sess_id =s.sess_id;
1、使用此语句查询
select
a.* ,
b.NAME,
c.SESS_ID,
‘sp_close_session(’ || sess_id || ‘);’
from
v$lock a ,
sysobjects b,
v$sessions c
where
b.ID =a.TABLE_ID
and a.TRX_ID=c.TRX_ID
and b.name = ‘表名’;
2、检查表是否关联触发器、视图、定时存储过程;
3、netstat -an|grep 5236查看下连接与more dm.ini|grep MAX_SESSION比较下,是否session设置问题;
说明这个表有连接不断进行访问,需要先暂时停止程序对改表的访问进行添加字段。