一、Oracle
查看用户锁表
select
sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo, dba_objects ao, v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid
解锁语句
alter system kill session 'sid,serial#'
查询锁表的sid,serial
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
解表
alter system kill session'sid,serial';
二、MySQL
查看是否有锁表SQL:(注意大小写)
show OPEN TABLES where In_use > 0;
杀掉锁表进程解锁表:
show processlist; (查看锁表的进程-得到PROCESSID)
kill pid;
本文介绍了如何在Oracle和MySQL数据库中查看被锁定的表以及如何解锁。在Oracle中,通过查询V$Locked_Object和DBA_Objects视图来定位锁定信息,并使用ALTER SYSTEM KILL SESSION语句释放锁。在MySQL中,使用SHOW OPEN TABLES WHERE In_use > 0检查锁定的表,然后通过SHOW PROCESSLIST找出锁进程并用KILL PID命令解除锁定。这些技巧对于数据库管理员来说是必备的监控和故障排除工具。
2万+

被折叠的 条评论
为什么被折叠?



