多语言展示
当前在线:458今日阅读:103今日分享:49

如何解决Oracle数据库锁表问题

作为一个IT技术人员,可能经常遇到在使用Oracle数据时,由于操作不当导致数据库锁表,从而影响项目正常使用,那么通过如下步骤,则可轻松解决锁表问题。
工具/原料
1

PLSQL Developer

2

Xshell

方法/步骤
1

--锁表查询SQLSELECT object_name, machine, s.sid, s.serial# ,o.ownerFROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid; 使用该查询语句查询被锁对象,锁表设备,以及sid和serial

2

--强制关闭进程alter system kill session '1434, 2425';此处1434 和 2425 分别为上步查询的sid和serial

3

--当出现'ORA-00030: 用户会话 ID 不存在'时--查询进程号select distinct s.sid,s.serial#,p.spid as 系统进程号from v$locked_object l , dba_objects o , v$session s , v$process pwhere l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;

4

使用Xshell工具登录数据库服务器,执行如下命令:kill -9 系统进程号系统进程号为上步查询的spid 至此,锁表问题可完美解决!

注意事项

kill系统进程需谨慎

推荐信息