Oracle 锁表查询及解锁kill进程

简介: 1. 查看被锁定的表SELECT OBJECT_NAME, MACHINE, S.SID, S.

1. 查看被锁定的表

SELECT OBJECT_NAME, MACHINE, S.SID, S.SERIAL#,l.LOCKED_MODE,l.OS_USER_NAME
  FROM GV$LOCKED_OBJECT L, DBA_OBJECTS O, GV$SESSION S
 WHERE L.OBJECT_ID  = O.OBJECT_ID
   AND L.SESSION_ID = S.SID;

2.解锁kill进程

--alter system kill session 'sid, serial#'; 
--ALTER system kill session '23, 1647'; 

3. 锁定类型:
0:none 
1:null 空 
2:Row-S 行共享(RS):共享表锁 
3:Row-X 行专用(RX):用于行的修改 
4:Share 共享锁(S):阻止其他DML操作 
5:S/Row-X 共享行专用(SRX):阻止其他事务操作 
6:exclusive 专用(X):独立访问使用
数字越大锁级别越高, 影响的操作越多。


如果DML没有提交情况下,另一个session提交针对同一资源的DLL,系统报错。


如果DML没有提交情况下,另一个session提交针对同一资源的DML,第二个session会hang住,等待第一个session。


死锁:


系统会系统自动处理,处理方式提出形成死锁的人,错误是ORA-00060


命令行模式处理行级锁


查看锁:


select sid,lock_id from dba_locks where blocking_others='Blocking';


sid列:占用资源sid


select sid from v$lock where type='TX';


block列>0:占用资源sid


block列=0:等待资源sid


SELECT * FROM V$SESSION WHERE BLOCKING_SESSION IS NOT NULL;


sid列:等待资源sid


blocking_session列:占用资源sid


oracle级处理:


杀掉占用资源的session


1. 查询sid和serial#


select sid, serial#
  from v$session
 where sid = (select blocking_session
                from v$session
               where blocking_session is not null)


2. 杀进程


alter system kill session 'sid, serial#' immediate;


 杀掉等待资源的session


1. 查询sid和serial#


select sid, serial# from v$session where blocking_session is not null;


2. 杀进程


alter system kill session 'sid, serial#' immediate;


系统级处理:


1. 查询系统pid


select s.sid, p.spid
  from v$session s, v$process p
 where s.paddr = p.addr
   and s.sid = 146
2. 杀进程


kill -9 pid

目录
相关文章
|
3月前
|
SQL Oracle 关系型数据库
Oracle查询优化-查询只包含数字或字母的数据
【2月更文挑战第4天】【2月更文挑战第10篇】查询只包含数字或字母的数据
105 1
|
4月前
|
Windows
windows环境下根据端口号查询进程编号并杀掉此进程
windows环境下根据端口号查询进程编号并杀掉此进程
|
2月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
31 0
|
4月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
69 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
4月前
|
Shell Linux 开发工具
linux shell脚本利用 kill -0 检查进程是否存在
linux shell脚本利用 kill -0 检查进程是否存在
62 1
|
4天前
|
开发者 Python
在Python中查询进程信息的实用指南
在Python中查询进程信息的实用指南
9 2
|
10天前
|
存储 Web App开发 运维
|
10天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在 DataWorks 中,使用Oracle作为数据源进行数据映射和查询,如何更改数据源为MaxCompute或其他类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
25 1
|
2月前
|
SQL Oracle 关系型数据库
Oracle系列之八:SQL查询
Oracle系列之八:SQL查询
|
3月前
|
Oracle 关系型数据库
Oracle 递归查询
Oracle 递归查询
11 0

相关实验场景

更多