【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.3.1
无锁表进程,无法对表进行DROP,这是什么情况呢?
删除报错么?如果有报错信息发一下
删除无报错,就一直卡在哪里,应该等待索释放?但是没有锁着啊
该表上有触发器么?
这样查询一下 信息
select
/+QUERY_TIMEOUT(3600000000) read_consistency(weak) /
b.TRANS_ID,
case
WHEN b.TYPE = ‘TM’ THEN ‘表锁’
WHEN b.TYPE = ‘TX’ THEN ‘事务锁’
WHEN b.TYPE = ‘TR’ THEN ‘行锁’
ELSE NULL
END
AS lock_type,
ID1,
LMODE,
CASE
WHEN BLOCK = 0 THEN ‘该事务持有锁’
WHEN BLOCK = 1 THEN ‘该事务被阻塞’
ELSE NULL
END
as BLOCK,
a.SVR_IP,
ID,
user,
command,
time,
total_time,
STATE,
info,
retry_cnt,
retry_info,
thread_id,
trace_id
from
gv$ob_processlist a,
GV$OB_LOCKS b,
CDB_ob_table_locations c
where
a.trans_id = b.trans_id
and c.table_name = ‘表名称’
and (
ID1 like concat(’%’ , c.table_id, ‘%’)
OR ID1 like concat(’%’ , c.tablet_id ,’%’)
);
可以这样查询一下 捞一下trace日志信息
select query_sql,svr_ip,TRACE_ID,client_ip,TENANT_NAME,user_name,DB_NAME,ELAPSED_TIME,RET_CODE,FROM_UNIXTIME(ROUND(REQUEST_TIME/1000/1000),’%Y-%m-%d %H:%i:%S’) from GV$OB_SQL_AUDIT
WHERE REQUEST_TIME>=‘2025-04-29 10:30:00’ and upper(query_sql) like ‘%drop %’ limit 10;
[root@x.x.x.x ~]$ grep “YB420BA1CC68-000615A09D4CBDA0-0-0” observer.log*
[root@x.x.x.x ~]$ grep “YB420BA1CC68-000615A09D4CBDA0-0-0” rootservice.log*
这个查看是OBLOADER 旁路导入报错,事务没提交,导致锁住了,但是库了查看不到锁表,这个怎么释放啊?
gv$ob_processlist 通过查看这个视图查询 OBLOADER导入的客户端进程 kill掉就好了
是OBLOADER 旁路导入ODP RPC端口2885导入报错,现在查看gv$ob_processlist 通过查看这个视图查询 OBLOADER导入都是SQL端口2881的信息,没有2885端口的?怎么确认对应的SESSION ID
你可以通过obproxy连接查看一下
obclient -h10.10.10.1 -uroot@proxysys -P2883 -p -c -A
SHOW PROCESSLIST;
SHOW PROXYSESSION; 通过这个命令查一下
GV$OB_SQL_AUDIT 你在这个视图里找到的导入的语句 不是有session id 么?还有sql id
你在通过gv$ob_processlist这个视图过滤一下 看看