Oracle锁表处理

(1)锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
(2)查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
(3)查看是哪个session引起的
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; 
(4)杀掉对应进程
执行命令:alter system kill session‘1025,41‘;
其中1025为sid,41为serial#

时间: 2024-10-21 10:48:04

Oracle锁表处理的相关文章

【Oracle】Oracle解锁、Oracle锁表处理

1.查看哪些对象被锁 select s.username, decode(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL, o.owner, o.object_name, o.object_type, s.sid, s.serial#, s.terminal, s.machine, s.program, s.osuser from v$session s, v$lock l, dba_objects o where s

oracle 锁表处理

1.查询数据库中的锁 select * from v$lock;select * from v$lock where block=1; 2.查询被锁的对象 select * from v$locked_object; 3.查询阻塞 查被阻塞的会话select * from v$lock where lmode=0 and type in ('TM','TX'); 查阻塞别的会话锁select * from v$lock where lmode>0 and type in ('TM','TX');

Oracle锁表处理操作笔记

--查看锁表进程SQL语句1: 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; 或者 SELECT b.own

Oracle锁表故障处理一例

一次开发人员直接在数据库服务器上做delete table操作系统,由时在上班高峰运行,造成长时间执行无反应,进而把SQLPLUS客户端关闭掉,再次运行删除语句,造成数据库运行缓慢.   询问操作过程知道了是由锁表造成,最终处理:本文只是模拟锁表处理过程,下次遇到相同问题可以快速处理. 1. 查看数据库的等待事件 如果不清楚原因,可以通过先通过等待事件进行分析. SQL> select sid,EVENT from v$session_wait where wait_class<>'Id

【锁】Oracle锁系列

[锁]Oracle锁系列 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 锁的概念.分类.及其模拟 ② 查询锁的视图及视图之间的关联 ③ 锁的参数(DML_LOCKS.DDL_LOCK_TIMEOUT) ④ FOR UPDATE及FOR UPDATE OF系列 ⑤ 带ONLINE和不带ONLINE创建索引的锁情况(是否阻塞DML操作) ⑥ 包或存过不能编译的解决方法

oracle 锁

问题如下: SQL> conn scott/[email protected]_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop table student2; drop table student2 ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效================

oracle 锁表 及 解锁

很久没有写博客了.不知道写什么 今天,让我清一张表的数据,结果清了之后,系统直接不动了,就好像服务器挂死了一样. 后来找了半天才发现,原来是我删除数据之后没有提交事物造成了数据库锁表,然后又不明白了, 什么是锁表呢,于是就上网去查 查了半天,大多数都是说怎么解决锁表和查询锁表的,但是只了解方法还不够,又想知道原理,于是 就继续往深里查查到了oracle的锁机制 由于数据库是多用户同时使用的共享资源,当多个用户并发的存取事物的时候,数据库中就会发生多个进程 同时操作同一个数据的情况,若对并发操作不

oracle 空表处理

oracle空表处理:1.动态生成给空表分配segment的命令:SQL>Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0:2.在命令窗口右键‘标记’,复制生成的命令并执行,回车.3.导出数据:exp tfgps/[email protected] file=D:\ORACLETEMP\TFGPS.DMP log=D:\ORACLETEMP\TFGPS.LOG4.新建表

Oracle锁表查询和解锁方法

数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住 DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL