oracle--事物特性、锁、

update emp set comm = 100  where empno = 7369;

 使用dba用户查看事务

ADDR                 XIDUSN    XIDSLOT     XIDSQN     UBAFIL     UBABLK     UBASQN     UBAREC STATUS           START_TIME           START_SCNB START_SCNW START_UEXT START_UBAFIL START_UBABLK START_UBASQN START_UBAREC SES_ADDR               FLAG SPACE RECURSIVE NOUNDO PTX NAME                                                                             PRV_XIDUSN PRV_XIDSLT PRV_XIDSQN PTX_XIDUSN PTX_XIDSLT PTX_XIDSQN     DSCN-B     DSCN-W  USED_UBLK  USED_UREC     LOG_IO     PHY_IO     CR_GET  CR_CHANGE START_DATE   DSCN_BASE  DSCN_WRAP  START_SCN DEPENDENT_SCN XID              PRV_XID          PTX_XID              CON_ID
---------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- -------------------- ---------- ---------- ---------- ------------ ------------ ------------ ------------ ---------------- ---------- ----- --------- ------ --- -------------------------------------------------------------------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------- ---------- ---------- ---------- ------------- ---------------- ---------------- ---------------- ----------
00007FFB1AB14670         10         18       2737          5       1144        472         37 ACTIVE           09/21/19 10:39:55       2830945          0          2            5         1144          472           37 00007FFB204976A0       3587 NO    NO        NO     NO                                                                                            0          0          0          0          0          0          0          0          1          1          5          0         11          2 2019/9/21 1          0          0    2830945             0 0A001200B10A0000 0000000000000000 0000000000000000          0

  

查看锁

自动加锁 for uppdate

自动加锁演示

试探是否加锁

select * from employee where deptid = 10 for update nowait;
select * from employee where deptid = 10 for update wait 5;
select * from employee where deptid = 10 for update skip locked;

 

杀掉session锁用户

查询锁(select * from v$lock;)找出sid

根据sid找出serial#

select sid, serial# from v$session where sid = 42;

  

dba用户杀死session

alter system kill session ‘42,58191‘;

  

select * from emp e;

update emp set comm = 100  where empno = 7369;

rollback;

select * from emp e where e.empno = 10 for update;

select * from employee where deptid = 10 ;

select * from employee where deptid = 10 for update;

update employee set salary = 5566  where empid = 1 and deptid = 10;commit;

select * from employee where deptid = 10 for update nowait;
select * from employee where deptid = 10 for update wait 5;
select * from employee where deptid = 10 for update skip locked;

select * from v$transaction;

select * from v$lock;

select sid, serial# from v$session where sid = 42;

alter system kill session ‘42,58191‘;

  

原文地址:https://www.cnblogs.com/eadela/p/11558642.html

时间: 2024-10-16 10:29:34

oracle--事物特性、锁、的相关文章

oracle事务和锁

数据库事务概括 1. 说明 一组SQL,一个逻辑工作单位,执行时整体修改或者整体回退. 2.事务相关概念 1)事务的提交和回滚:COMMIT/ROLLBACK 2)事务的开始和结束 开始事务:连接到数据库,执行DML.DCL.DDL语句 结束事务: 1. 执行DDL(例如CREATE TABLE),DCL(例如GRANT),系统自动执行COMMIT语句 2. 执行COMMIT/ROLLBACK 3. 退出/断开数据库的连接自动执行COMMIT语句 4. 进程意外终止,事务自动rollback 5

事务的隔离级别以及oracle中的锁

事务的概念及特性 事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序. 特性 事务是恢复和并发控制的基本单位. 事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACID特性. 原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(consistency).事务必须是使数据

Oracle查询被锁的表及进程的方法

Oracle查询可以有多种方法,下面为您介绍的是如何Oracle查询被锁的表及Oracle查询连接的进程的方法,希望对您能够有所帮助. 一.查看被锁的表 select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a

Oracle数据库悲观锁与乐观锁详解

数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁.什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住.而乐观锁就是认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做. 先从悲观锁开始说.在SqlServer等其余很多数据库中,数据的锁定通常采用页级锁的方式,也就是说对一张表内的数据是一种串行化的更新插

Oracle用户被锁原因及办法

Oracle用户被锁原因及办法   在登陆时被告知test用户被锁 1.用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’; Session altered. 2.查看具体的被锁时间 SQL> select username,lock_date from dba_users where username=’TEST’; USERNAME LOCK_D

oracle 死锁和锁等待的区别

所谓的锁等待:就是一个事务a对一个数据表进行ddl或是dml操作时,系统就会对该表加上表级的排它锁,此时其他的事务对该表进行操作的时候会等待a提交或是回滚后,才可以继续b的操作 所谓的死锁:当两个或多个用户相互等待锁定的数据时就会发生死锁,这时这些用户被卡在不能继续处理业务,oracle可以自动检测死锁并解决他们,通过回滚一个死锁中的语句,释放锁定的数据,回滚的话会遇到ora-00060 deadlock detected while waiting for resource 模拟锁等待: 两个

oracle查看被锁的表和被锁的进程,杀掉进程

-- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name FROM v$process p, v$session a, v$locked_object b, all_objects c WHERE p.addr = a.paddr AND a.process = b.process AND c.object_id = b.object_id -- 2.

oracle 杀死被锁进程

Oracle杀死死锁进程 先查看哪些表被锁住了: 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; OWNER        OBJECT_NAME        SESSION_ID LOCKED_MODE ------------------------------ -------------

查看Oracle数据库被锁住的表,删除锁表的进程

锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name,    lo.locked_mode, lo.session_id, vss.serial#, vss.action action, vss.osuser osuser, vss.logon_time, vss.process ap_pid, vps.spid db_pid FROM v$locked_object lo, dba_object

ORACLE的TM锁和TX锁

根据保护的数据不同,ORACLE的数据库锁分为以下几大类: 1.DML锁(data locks数据锁),用于保护数据的完整性: 2.DDL锁(dictionary locks字典锁),用于保护数据库对象的结构,例如表.索引的结构定义: 3.内部锁或闩(internal locks or latches),用于保护内部结构 在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁,TX锁称为事务锁或行级锁. 当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的