oracle加锁方式,oracle中加锁与解锁

oracle加锁方式,oracle中加锁与解锁oracle中的数据在并发操作时,为了防止错误的发生可以进行记录或者数据库表的加锁操作。当锁操作完成时可以进行解锁操作。数据库中加锁有两种方式,独占模式和共享模式。1.独占模式,不允许其他会话以任何方式共享锁定资源,当进行数据库数据修改时可以使用这种模式。2.共享模式,允许在数据访问时,并发共

大家好,欢迎来到IT知识分享网。oracle加锁方式,oracle中加锁与解锁

oracle中的数据在并发操作时,为了防止错误的发生可以进行记录或者数据库表的加锁操作。当锁操作完成时可以进行解锁操作。

数据库中加锁有两种方式,独占模式和共享模式。

  1.独占模式,不允许其他会话以任何方式共享锁定资源,当进行数据库数据修改时可以使用这种模式。

  2.共享模式,允许在数据访问时,并发共同访问,但是当修改数据时上升为独占模式。

锁分为行级锁和表级锁,行级锁是锁定某些行记录,表级锁是锁定整张表。

1.行级锁。

  insert update delete (隐式加行锁)

  select…for update(显示加行锁,共享模式)

  select * from emp where deptno=30 for update

  select * from A where id=2 for update skip locked

  update emp set ename=’Joke’ where empno=7499;在释放锁之前其他用户只能对进行数据查询,不能对数据进行insert、delete和update。

  假如有其他用户要锁定同一资源:可以使用wait 子句对锁的等待时间控制 如: 在另一用户中:select * from emp where deptno=30 for update wait 2 (等待2秒 如2秒钟还未释放资源,系统将会给出提示信息。

2.表级锁。

  共享模式(in share mode)

  共享更新模式(in share update mode) 排他锁模式 锁定表的通用语法:

  lock table 表名 in ;

1) 共享模式

  不允许其他用户插入,更新和删除行,多个用户可以同时在同一表上设置共享锁,这样设置锁的多个用户都只能执行查询 lock table emp in share mode;

2)共享更新模式(in share update mode)

  允许多个用户同时锁定表的不同行, 允许其他用户进行DML(insert update delete select)操作 , 除了已锁定的行

  如: lock table emp in share update mode;

  select * from emp where deptno=30 for update //锁定的行 其他用户不能delete ,update 部门30的雇员信息

  其他用户可以查看锁定的行: select * from emp where deptno=30

3)排他锁模式(限制性强)

  不允许其他用户插入,更新和删除行, 允许查看数据,但只有一个用户可以在表中放置排他锁

  lock table emp in exclusive mode;

解锁:

(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#.

 

参考资料 https://blog.csdn.net/czh500/article/details/89077168

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32432.html

(0)
上一篇 2023-11-21 12:00
下一篇 2023-12-03 14:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信