Oracle数据库锁表处理

工作中我们经常会遇到数据库锁表,锁表后进程一大堆,业务功能都不能正常使用,下面给大家带来详细的锁表解锁方法;

第一步:查看数据库引起锁表的SQL语句

select sql_fulltext,
       b.sid,
       b.serial#,
       'alter system kill session''' || b.SID || ',' || b.serial# || ''';',
       b.username,
       b.USERNAME,
       b.MACHINE,
       b.PROGRAM
  from v$process a, v$session b, v$sqlarea c
 where a.addr = b.paddr
   and b.sql_hash_value = c.hash_value
 order by sql_text;

查询结果:
在这里插入图片描述

  • 其中第五列我这里自动整理好要查杀的语句了 alert system kill session ‘’;
  • 此条语句不再进行单独解释,各位可自行百度参考;

第二步:链接SQLPLUS执行命令 alert system kill session

键入:sqlplus [数据库用户名]/[密码]
例如:sqlplus user1/pwd2
同样也可以使用 sqlplus / as sysdba 使用超级管理员权限来操作

邯郸开发-linux:bspdev:/data/home/bspdev> sqlplus bsprun/bsprun
SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 26 15:44:44 2021
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> 

登录sqlplus权限后可以执行 alter system kill session ‘19,5884’;
执行完毕之后,可重新执行步骤一的查询SQL,此时发现,一直执行不动的sql已经消失。

以上就是查询锁表及处理的方法,你学会了吗?

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐