`
liqi6510
  • 浏览: 39248 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle锁机制

阅读更多
1、行级锁
insert ,update ,delete,自动在行上加一个行级锁。通过commit,rollback解锁。
查看行级锁阻塞情况:
select sid , blocking_session,username,event from v$session where blocking_session_status='VALID';
查看session加锁情况,不含锁阻塞的情况:
select * from v$locked_objects;
oracle 加锁是依次执行的,假设有3个用户,同时修改某行数据。第一个用户先获得行级锁,其他两个用户处于等待状态,也就是阻塞了其他两个用户。当这个用户 commit操作,解放自身的行级锁。此时,第二个用户将获得行级锁,再阻塞第三个用户。直到第二个用户释放行级锁,第三个用户才有机会获得锁,否则将一直处于等待状态。

2、表级锁
1) lock table tab_name in share mode(共享锁) 在表级别上加上共享锁,在该表上用户只能够select操作,其他操作都被阻塞,要一直等到该表的锁释放。同时还允许其他用户在该表上也加上share锁。Type为4。
解锁:用户在该表上执行commit或rollback后,将解除该锁。
2) lock table tab_name in exclusive mode(排他锁) 在表级别上加上排他锁,在该表上用户只能select操作,其他操作都被阻塞,通过还不允许用户再在该表上加上其他类型的锁。Type为6(加锁级别最高)。
解锁:用户在该表上执行commit或rollback后,将解除该锁。
3) Lock table tab_name in share row exclusive mode():在表级别上加上排他锁,在该表上用户只能select操作,其他操作将被阻塞,不能加共享锁、共享行排他锁和排他锁。Type为5。
解锁:用户在该表上执行commit或rollback后,将解除该锁。

3、数据库级锁
1) alter system enable restricted session;
受限方式打开数据库,对已经连接上数据库的用户仍然能够操作数据库;要连接数据库,用户必须具有restrictive session的权限。
其目的主要是希望在数据库打开期间,且在没有用户会话干扰(如建立连接和执行任务)的情况下完成数据库的维护操作(如数据库的导入、导出)。
Alter system disable restricted session;解除数据库受限模式。
2) 以只读方式打开数据库
Shutdown immediate
Startup mount
Alter database open read only;
这时候数据库只能够执行select操作,其他操作就要抛出错。
分享到:
评论

相关推荐

    oracle锁机制探讨

    在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁(用来保证表的结构不被用户修改),TX锁称为事务锁或行级锁。当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统...

    Oracle 锁机制问题详解

    ### Oracle 锁机制问题详解 #### 一、引言 在多用户数据库环境中,当多个用户尝试同时访问或修改同一份数据时,就需要通过锁机制来确保数据的一致性和完整性。Oracle 数据库提供了多种类型的锁来支持事务隔离级别,...

    oracle锁机制

    关于oracle锁以及并发的详细描述。

    oracle锁机制_bzm整理1

    以下是对Oracle锁机制的详细解释: 1. **锁的存在原因**: - 并发控制:在多用户环境下,多个事务可能同时访问相同的数据,锁用于防止冲突,确保每个事务看到的是一个一致的数据视图。 - 数据一致性:通过锁,...

    Oracle的锁机制

    Oracle的锁机制是数据库管理系统中一个关键的组成部分,它的主要目标是确保在多用户环境下,数据的读一致性、完整性和并行性。Oracle提供了多种类型的锁来满足这些需求。 首先,按照是否独占,锁分为排它锁(X锁)...

    oracle数据库中的锁机制

    #### Oracle锁的类型与模式 1. **行级锁**:当一个事务尝试修改某一行时,Oracle会自动对该行加锁,阻止其他事务同时修改同一行。这种锁称为行级锁,是最细粒度的锁。 2. **表级锁**:在某些情况下,整个表可能被...

    ORACLE锁机制深入理解

    Oracle数据库的锁机制是确保多用户并发访问时数据一致性的重要工具。在数据库环境中,当多个事务同时尝试访问和修改同一数据对象时,如果没有适当的控制,可能会导致数据的不一致性和并发问题。为了解决这些问题,...

    oracle锁机制了解和学习电网项目学习

    oracle数据库锁机制常备大家所诟病,希望对学习者有帮助,大家自觉学习

    oracle锁表查询oracle锁表查询oracle锁表查询

    #### 一、Oracle锁机制简介 在Oracle数据库中,锁是一种重要的并发控制机制,用于管理多个用户对同一数据资源的访问。通过锁机制,Oracle能够确保数据的一致性和完整性,避免多用户操作时可能出现的数据冲突问题。 ...

    Oracle锁 图例

    总结,Oracle锁机制是数据库并发控制的核心,理解并熟练掌握锁的使用和管理对于优化数据库性能、避免并发问题至关重要。通过使用适当的工具和技巧,我们可以有效地监控和解决锁相关问题,从而提高系统的稳定性和响应...

    ORACLE锁深入分析

    总之,Oracle锁机制是其并发控制的核心,通过精细的锁类型和模式,Oracle能够在保证数据一致性的同时,支持多个并发事务高效地访问数据库资源。了解并掌握Oracle锁的原理和应用,对于优化数据库性能和解决并发问题至...

    oracle并发和锁机制

    oracle并发和锁机制,oracle并发锁,oracle锁

    oracle锁讲解笔记

    ### Oracle锁机制详解 #### 锁的基本概念与作用 锁机制是Oracle数据库中用于管理并发访问共享资源的关键组件。在多用户环境中,确保数据的一致性和完整性至关重要,尤其是在多个会话试图同时修改相同数据的情况下...

    ORACLE关于锁和V$LOCK的分析.docx

    ORACLE 锁机制和 V$LOCK 视图分析 Oracle 数据库为了实现并发操作,使用了锁机制来控制对数据的访问。锁机制是 Oracle 数据库并发控制的核心机制之一。锁机制能够有效地防止多个用户同时访问同一个数据项,避免了...

Global site tag (gtag.js) - Google Analytics