1、oracle锁 
行级排他锁(Row Exclusive,简称RX锁)
当我们进行DML时会自动在被更新的表上添加RX锁,或者也可以通过执行lock命令显式的在表上添加RX锁。在该锁定模式下,允许其他的事务通过DML语句修改相同表里的其他数据行,或通过lock命令对相同表添加RX锁定,但是不允许其他事务对相同的表添加排他锁(X锁)。
行级共享锁(Row Shared,简称RS锁)
通常            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2011-11-11 10:07:58
                            
                                1141阅读
                            
                                                        
                                点赞
                            
                                                                                    
                                1评论
                            
                                                 
                 
                
                             
         
            
            
            
            1.查找被锁定的资源     SELECT * FROM v$lock where request > 0;     2.查找引起锁的语句      SELECT DECODE(request,0,'Holder: ','Waiter: ') ||sid sess,       id1, id2, lmode, request, type,BLOCK    &#            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-06-08 14:52:07
                            
                                567阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            查询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$se ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-10-08 14:48:00
                            
                                279阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            select s.username,       l.object_Id,       l.session_id,       s.serial#,       l.oracle_username,       l.os_user_name,       l.process  from v$locked_object l, v$session s where l.session_...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-24 15:28:12
                            
                                297阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SELECT 'Lock' "Status",
  a.username "用户名", a.sid "SID", a.serial# "SERIAL#",
  b.type "锁类型",
  DECODE(b.lmode, 1, 'No Lock', 2, 'Row Share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', 'NONE') "占用的模式",
  DECODE(b.request, 1, 'No Lock', 2, 'Row Share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive&#            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-06-07 14:16:33
                            
                                872阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            #查看锁表select a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwaitfrom all_objects a,v$locked_object b,v$session c where a.object_id=b.object_id and c.sid=b...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-02-18 14:42:32
                            
                                259阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            使用语句:alter session enable parallel dml;会锁表,只能执行一个窗口中的sql语句,想执行updat            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-11 11:17:27
                            
                                289阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            #查看锁表select a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwaitfrom all_objects a,v$locked_object b,v$session c where a.object_id=b.object_id and c.sid=b...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-24 19:21:29
                            
                                297阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SQL> SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
  2          id1, id2, lmode, request, type
  3     FROM             
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2010-11-03 15:04:20
                            
                                1100阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ORACLE里锁有以下几种模式:    0:none  1:null 空   2:Row-S 行共享(RS):共享表锁   3:Row-X 行专用(RX):用于行的修改  4:Share 共享锁(S):阻止其他DML操作  5:S/Row-X 共享行专用(SRX):阻止其他事务操作  6:exclusive 专用(X):独立访问使用    数字越大锁级别越高, 影响的操作越多。
  一般的查询语句            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2009-05-08 10:56:32
                            
                                1339阅读
                            
                                                                                    
                                1评论
                            
                                                 
                 
                
                             
         
            
            
            
            查询sid SELECT l.session_id sid, s.serial#, l.locked_mode , l.oracle_username , l.os_user_name , s.machine , s.terminal , o.object_name , s.logon_time F            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-03-05 09:43:30
                            
                                125阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            查看处于被锁状态的表:v$locked_object dba_objects v$session all_objects v$sqlarea v$lock--1.查看处于被锁状态的表SELECT a.object_id,       a.session_id,       b.o            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2015-03-18 09:58:52
                            
                                912阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            查看锁表进程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             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-04 23:29:48
                            
                                1164阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查询SQLSELECT object_name, machine, s.sid, s.serial# FROM gv$lo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-08-02 16:01:00
                            
                                650阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            手工锁表:
lock table tbl_t1 in row share mode nowait;                --2            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-09-20 14:01:29
                            
                                125阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            systemkillsession“sid,serial#”;或者使用相关操作系统kill进程的命令,如UNIX下kill-9sid,或者使用其它工具杀掉死锁进程。selectt2.username,t2.sid,t2.serial#,t3.object_name,t2.OSUSER,t2.MACHINE,t2.PROGRAM,t2.LOGON_TIME,t2.COMMAND,t2.LOCKWAI            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-06-28 14:29:45
                            
                                3395阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            
   假设某个用户(假设为A)发出如下的语句更新一条记录:
 
SQL> update employees set 
last_name='HanSijie' 
where 
employee_id=100;
上面的例子,这时A用户已经发出了更新employee_id为100的记录的SQL语句。当A还没有提交之前,另外一个用户D发出下面的语句:
            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-03-05 09:48:28
                            
                                2043阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、查询是否锁表show OPEN TABLES where In_use > 0;2、查询进程show processlist查询到相对应的进程,然后 kill    id 3、查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 4、查看等待锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-07-26 07:28:17
                            
                                218阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            记录:
对表的操作在短时间内非常的频繁会导致数据库锁表;
解决办法
1、查询被锁的会话ID:
select session_id from v$locked_object;
2、查询上面会话的详细信息:
SELECT sid, serial#, username, osuser FROM v$session where sid = session_id ;
3、将上面锁定的会话关闭:
ALTE            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-04 10:48:56
                            
                                541阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            select table_name from user_constraints where r_constraint_name in (select constraint_name from user_constraints where upper(table_name) = 'TB_PK' and constraint_type ='P') and constraint_type ='            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-01-05 11:34:58
                            
                                516阅读