`

oracle table-lock的5种模式

阅读更多
oracle table-lock的5种模式

Oracle中的锁定可以分为几类:
1、DML lock(data lock),
2、DDL lock(dictionary lock)
3、internal lock/latch。

DML lock又可以分为row lock和table lock。row lock在select.. for update/insert/update/delete时隐式自动产生,而table lock除了隐式产生,也可以调用lock table <table_name> in </table_name> name来显示锁定。

如果不希望别的session lock/insert/update/delete表中任意一行,只允许查询,可以用lock table table_name in exclusive mode。(X)这个锁定模式级别最高,并发度最小。

如果允许别的session查询或用select for update锁定记录,不允许insert/update/delete,可以用
lock table table_name in share row exclusive mode。(SRX)

如果允许别的session查询或select for update以及lock table table_name in share mode,只是不允许insert/update/delete,可以用
lock table table_name in share mode。(share mode和share row exclusive mode的区别在于一个是非抢占式的而另一个是抢占式的。进入share row exclusive mode后其他session不能阻止你insert/update/delete,而进入share mode后其他session也同样可以进入share mode,进而阻止你对表的修改。(S)

还有两种锁定模式,row share(RS)和row exclusive(RX)。他们允许的并发操作更多,一般直接用DML语句自动获得,而不用lock语句。
详细参考concepts文档中的"Type Of Locks":
http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96524/c21cnsis.htm#2937


-------------------------------------
怎么unlock table 解锁

方法一、kill session:

SQL> select object_id,session_id from v$locked_object;  //注意session_id 就是上锁的 session标志
SQL> select username,sid,SERIAL#  from v$session where sid=。。;      //这里的SID = session_id
SQL> alter system kill session 'id,serial#';     //杀死该session

方法二、rollback/commit 终止事务处理
分享到:
评论

相关推荐

    lock_table.rar_Table_lock table_oracle lock table

    查詢oracle table被那個使用者鎖住

    彻底搞清楚library cache lock的成因和解决方法

    第一种情况,当会话1(session 1)在对一个表执行DML 或者 DDL,与此同时还有另一个会话,我们姑且称之为会话2(session 2),这个会话2也在对这个表执行DDL(如ALTER TABLE),当会话2的完成需要很长时间时(依操作...

    seata-oracle.sql

    Seata1.3.0 Orace对应的UNDO_LOG、GLOBAL_TABLE、BRANCH_TABLE、LOCK_TABLE等表,并且包含UNDO_LOG自增序列。s

    oracle数据表解锁

    'TABLE LOCK', 'PW', 'TABLE LOCK', 'TO', 'TABLE LOCK', 'TS', 'TABLE LOCK', 'RT', 'ROW LOCK', 'TX', 'ROW LOCK', 'MR', 'S(Share)', NULL) 锁定方式, C.MACHINE 用户组, C.TERMINAL 机器名, ...

    Oracle五种表级排他锁的总结和归纳

    Oracle五种表级排他锁的总结和归纳行级排他锁 (Row Exclusive Table Lock,RX)

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    Oracle中权限主要分为两种,系统权限和实体权限。  系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。  DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。  RESOURCE:...

    ORACLE锁深入分析

    1.什么是ORACLE锁 数据库是一个多用户使用的共享... 6 X(Exclusive) 排它锁 Alter table、Drop able、Drop index、Truncate table 、Lock exclusive Oracle举例 欢迎登陆交流 程序员百味: http://www.bywei.cn/blog

    oracle 12c 数据库 教程

    控制文件(control file) 5 归档模式:冷备份,离线备份,热备份,联机备份 6 Spfile:二进制,9i 之后 Pfile:文本,9i 之前 6 可以将 spfile 转换为 pfile 6 注意:scope 的取值有三个:memory...

    最全的oracle常用命令大全.txt

    Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    Oracle JOB 用法小结

     job如果由于某种原因未能成功之行,oracle将重试16次后,还未能成功执行,将被标记为broken重新启动状态为broken的job,有如下两种方式;  a、利用dbms_job.run()立即执行该job  sql&gt;begin  sql&gt;dbms_job.run...

    Oracle 11g自带人事管理示例数据库(安装使用有详细说明)

    $ORACLE_HOME/demo/schema/human_resources/目录下。 2、在该目录下执行:sqlplus / as sysdba; 3、执行SQL&gt;@hr_main.sql创建HR数据库。 1、使用管理者system身份登录,登陆成功后输入 alter user hr identified by...

    Oracle事例

    sql&gt; [account lock|unlock] [profile profilename|default]; &lt;1&gt;.查看当前用户的缺省表空间 SQL&gt;select username,default_tablespace from user_users; 生成用户时指定缺省表空间 create user 用户名 ...

    Oracle - New Features for Developers in 12c (Arup Nanda)-计算机科学

    • DDLs do not need lock. • DML continues as usual– drop index i1 online – alter index i1 unusable online – alter table t1 set unused columns online – alter table t1 drop column c1 online – ...

    MS-DOS 5.0

    5. Create a DOS directory on your hard disk. 5. Copy all files on your floppy disks to the DOS directory. 6. Modify your CONFIG.SYS and AUTOEXEC.BAT files as necessary. 2.2 SyQuest Removable Hard...

    Oracle - Understanding Oracle Locking (Arup Nanda)-计算机科学

    Understanding Oracle Locking InternalsArup Nanda Longtime Oracle DBA@ArupNandaCopyrightIMPORTANT Please feel free to use the material presented here foryour benefit....lock store in Oracle?Agend

    锁表的SESSION处理方法

    锁表的SESSION处理方法 使用下面语句查询出锁表的SESSION_ID SELECT A.OWNER 方案名, A.OBJECT_NAME 表名, B.XIDUSN 回滚段号, B.XIDSLOT 槽号, B.XIDSQN 序列号, B.SESSION_ID 锁表SESSION_ID, ... 'TABLE LOCK',

    SQL语法大全

    CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称 (永久性删除一个数据表) 4. 记录集对象的方法:...

    orcale常用命令

    Oracle数据库有哪几种启动方式 说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

Global site tag (gtag.js) - Google Analytics