`

oracle 记录被锁定

 
阅读更多

select object_id,session_id,locked_mode from v$locked_object; 

select t2.username,t2.sid,t2.serial#,t2.logon_time 

from v$locked_object t1,v$session t2 

where t1.session_id=t2.sid order by t2.logon_time; 

alter system kill session '157,54616' 

 

 

 

 

<!--StartFragment -->
select sess.sid, 
    sess.serial#, 
    lo.oracle_username, 
    lo.os_user_name, lo.SESSION_ID,
    ao.object_name, sess.SECONDS_IN_WAIT,
    lo.locked_mode,sess.MACHINE 
    from v$locked_object lo, 
    dba_objects ao, 
    v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 
 
 

select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号
from v$locked_object l , dba_objects o , v$session s , v$process p
where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
 
 
 
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id = o.object_id and l.session_id=s.sid;
 
 
 
 
查找导致锁定原因的sql

1. ORACLE中查看当前系统中锁表情况 
select * from v$locked_object 
可以通过查询v$locked_object拿到sid和objectid,然后用sid和v$session链表查询是哪里锁的表,用v$session中的objectid字段和dba_objects的id字段关联,查询详细的锁表情况。

查询SQL如下: 
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$session sess, v$process p 
where ao.object_id = lo.object_id 
   and lo.session_id = sess.sid;

查询是什么SQL引起了锁表的原因,SQL如下: 
select l.session_id sid, 
       s.serial#, 
       l.locked_mode, 
       l.oracle_username, 
       s.user#, 
       l.os_user_name, 
       s.machine, 
       s.terminal, 
       a.sql_text, 
       a.action 
  from v$sqlarea a, v$session s, v$locked_object l 
where l.session_id = s.sid 
   and s.prev_sql_addr = a.address 
order by sid, s.serial#;

2. ORACLE解锁的方法 
alter system kill session ’146′;  –146为锁住的进程号,即spid

 

 
分享到:
评论

相关推荐

    oracle 数据库用户被锁定在linux下操作

    Oracle 数据库用户锁定解决方案在 Linux 下的操作记录 Oracle 数据库用户锁定是指用户账户被锁定,无法登录数据库的情况。这种情况可能是由于用户密码输入错误次数超过限制,或者是数据库管理员对用户账户进行了...

    Oracle事务与锁定

    Oracle事务与锁定是数据库管理系统中的核心概念,它们对于确保数据的完整性和一致性至关重要。事务是数据库操作的基本单元,它封装了一系列的数据库操作,确保这些操作要么全部成功,要么全部失败,从而保持数据库的...

    记录被另一个用户锁定.txt

    ### Oracle记录被另一个用户锁定的解决办法 在Oracle数据库中,当多个用户尝试同时更新同一数据记录时,可能会出现锁定冲突的问题。这种情况下,如果一个用户的事务已经锁定了某些记录,而其他用户试图修改这些记录...

    SQLServer和Oracle防止数据锁定的比较 .txt

    2. **行级锁定**:SQL Server支持行级锁定,这意味着只锁定被修改的具体行,而非整个表,这极大地减少了锁定范围。 3. **页面锁定**:对于频繁修改的数据页,SQL Server能够智能地锁定整个页面,而不是单个行,以此...

    Oracle数据库账号被锁定解决方法

    在Oracle数据库操纵中,登录Oracle账号时提示失败,并且Oracle账号频繁被锁定。造成此故障的原因是什么呢?本文就介绍了这一过程,经由过程慢慢排查我们就能找到该故障的原因了。 下面记录下查找这个题目的步调。 1....

    Oracle数据库"记录被另一个用户锁住"解决方法(推荐)

    总之,Oracle数据库中的记录锁定是并发控制的一部分,通过理解锁定机制并合理管理事务,可以有效避免和解决锁定问题。在实际操作中,应结合业务需求和数据库性能进行优化,确保系统的稳定运行。在遇到锁定问题时,...

    PLSQL中记录被另一个用户锁住的原因及处理方法.txt

    在Oracle数据库环境下,使用PL/SQL进行开发时,可能会遇到记录被另一个用户锁定的情况,这种现象不仅会影响当前用户的操作效率,还可能导致业务逻辑执行异常。 #### 锁的概念 在Oracle数据库中,锁是一种用于控制...

    oracle存储过程解锁

    锁定记录中通常包含锁定类型、锁定对象名以及执行锁定的会话ID等信息,这些信息对于后续的解锁操作至关重要。 接下来,一旦确定了锁定存储过程的会话ID,可以进一步查询`v$session`视图来获取与该会话ID相关的更多...

    记录被另一个用户锁住解决方法

    总的来说,遇到“记录被另一个用户锁住”的问题时,理解Oracle的锁定机制和并发控制原理至关重要。通过适当的方法和策略,我们可以有效地解决这个问题,保证数据库的正常运行。在实际操作中,还需要结合具体情况进行...

    Oracle学习记录之用户管理

    本篇文章将深入探讨“Oracle学习记录之用户管理”这一主题,结合“Oracle命令全集.doc”文档,我们将详细解析Oracle用户管理的相关知识点。 首先,创建用户是Oracle数据库管理员(DBA)的首要任务。使用SQL命令`...

    oracle删除重复记录性能分析

    这种方法通过比较两个表中的`ggzj_zqdm`字段,仅保留最大ROWID值的记录,其他重复记录均被删除。适用于有特定条件限制的场景。 #### 三、性能分析 1. **ROWID直接删除**:优点在于简单且速度快,但对于数据量较大...

    利用ASP实现Oracle数据记录的分页显示

    【ASP实现Oracle数据记录分页显示】 在网页中展示大量数据时,为了提高用户体验和页面加载速度,通常需要实现分页功能。对于Oracle数据库,由于其自身不支持ADO对象集Recordset的某些分页属性,如PageSize、...

    字段被SDE用户锁定的解决办法.txt

    在Oracle数据库管理过程中,可能会遇到特定的字段被SDE(Spatial Data Explorer)用户锁定的情况。这种情况通常发生在使用Oracle Spatial与GIS技术进行地理空间数据管理时。当一个字段被锁定后,可能会导致其他用户...

    Oracle数据库系统安全加固规范

    * ELK-Oracle-01-02-04:口令的登录记录必须被记录和存储,以便进行安全审计。 * ELK-Oracle-01-02-05:口令的权限必须被严格限制,仅提供必要的权限,以免口令被滥用。 日志配置 日志配置是Oracle数据库系统安全...

    oracle lock

    - 当一条语句修改了一条记录时,只有这条记录被锁定,不存在锁升级的情况。 - 修改某行时,会阻止其他用户对该行的修改。 - 读操作通常不会阻止写操作,除非使用了特殊的锁定方式(如`SELECT FOR UPDATE`)。 - 写...

    oracle 检测数据库是否有对象被锁的脚本

    在Oracle数据库管理中,了解如何检测对象被锁的情况至关重要,因为锁定可能会导致数据一致性问题,影响系统的正常运行。本文将详细介绍如何使用提供的脚本`ckobject_lock.sh`和`ckobject_lock.sql`来监控和检测...

    Oracle 锁机制问题详解

    这种锁定被称为“排他锁”。在指定记录上请求排他锁的第一个会话会得到这个锁定,其他请求对该记录进行写访问的会话则必须等待。这些锁定在事务被提交或回滚后自动释放。 - **排他锁**:一次只能有一个会话获得对一...

    oracle数据库闩锁锁定与并发专题.doc

    在这个专题中,我们主要探讨的是Oracle数据库中的闩锁(Latch)和锁定(Lock)机制,这两种机制都是为了实现并发操作的串行化,防止数据的破坏。 首先,串行化是数据库管理系统中确保数据安全的重要原则,即使在多...

    Oracle数据库性能分析

    - **获取分析锁**: 在语句解析过程中,Oracle会锁定相关的对象,防止对象定义在此期间发生改变。 - **权限检查**: 检查用户是否有足够的权限来执行该操作。 - **选择执行计划**: Oracle会选择最有效的执行路径来...

Global site tag (gtag.js) - Google Analytics