
问题排查
1.在ip地址末尾为29的数据库上面执行
select * from"XXX_V30"."XXX_FWFP";
查询出不了结果:

SELECTVTW.ID AS TRX_ID,VS.SESS_ID,VS.SQL_TEXT,VS.APPNAME,VS.CLNT_IPFROMV$TRXWAIT VTWLEFT JOIN V$TRX VT ON (VTW.ID = VT.ID)LEFT JOIN V$SESSIONS VS ON (VT.SESS_ID = VS.SESS_ID);
/***Manager***//***Manager***/alter table "XXX_V30"."XXX_FWFP" add column("YLS_XH"INTEGER);

4.通过以下命令打印当前会话线程(添加字段的会话线程,线程号3922425来源于 v$sessions 的 THRD_ID 字段)的堆栈。
pstack 3922425 > home/dmdba/dmdbms/log/pstack3922425.log
堆栈信息如下:


select SQL_TEXT,STATE,CLNT_IP,CLNT_HOST,CLNT_TYPE,APPNAME,MSG_STATUSfrom gv$sessionswhere STATE = 'ACTIVE'and SQL_TEXT is null;

select SQL_TEXT,STATE,CLNT_IP,CLNT_HOST,CLNT_TYPE,APPNAME,MSG_STATUSfrom gv$sessionswhere STATE = 'ACTIVE' and SQL_TEXT like '%V30_XXX%';




问题处理
达梦数据库中,select操作会产生共享锁,防止其他事务修改正在访问的对象。
这个锁允许多个事务同时并发读取相同的资源,但是不允许任何事务修改这个资源。
对于我们这个例子,也就是查询操作在未返回结果之前会阻塞对查询对象增加字段的操作。遇到类似的问题可以往这方面的思路去排查和分析。
以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!
【干货】2024年达梦技术干货年度合集

文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




