`

Oracle中被锁定的解决办法

阅读更多

一些性能方面的告警信息通过dba_outstanding_alerts表都能查到,被锁定的表如果长期得不到释放,在这里也能查到相关session的sid和serial#。

select * from dba_outstanding_alerts 

v$locked_object视图可以看到当前被锁定的对象,只有那些一直存在的session才有可能是被锁定的,因此不能简单匆忙的下结论,尤其是在RAC环境中,必须查看各个节点以发现相关的session在哪里。

 

select * from v$locked_object

有时候也可以根据对象名来查看锁的信息:

 

select sid,id1,type from v$lock where id1=
(select object_id from dba_objects where object_name
=upper('mytablename')); 

找到了引起锁定的session,就可以找到对应的sid和serial#

 

select saddr,sid,serial#,paddr,username,status from v$session 
where sid=772 

从而可以杀死这个session:

 

SQL> alter system kill session '772,9044';

 

System altered.

可以查询Oracle数据库的进程和操作系统进程之间的关联:

 

select spid, osuser, s.program from v$session s,
v$process p
where s.paddr=p.addr and s.sid=772

有时候一些进程要在操作系统杀死,这时可以用kill -9 pid的命令:

 

[root@erpdevdb ~]# ps -ef|grep sqlplus
oracle 11847 11126 0 16:39 pts/1 00:00:00 sqlplus -S @/oracle/home/droptable.sql
root 11889 11856 0 16:40 pts/2 00:00:00 grep sqlplus
[root@erpdevdb ~]# kill -9 11847 

数据库对象锁定引起的阻塞是比较麻烦的事情,处理的时候一定要小心谨慎。

分享到:
评论

相关推荐

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

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

    解决Oracle system或用户被锁定问题

    本文将详细介绍Oracle系统用户及普通用户被锁定后的解决办法,并提供一些实用的技巧,帮助读者有效应对这类问题。 #### 一、Oracle System用户被锁定的解决方案 当Oracle system用户被锁定时,通常可以采取以下...

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

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

    解决Oracle 11g中scott用户默认被锁定的问题

    ### 解决Oracle 11g中scott用户默认被锁定的问题 ...通过上述方法,我们不仅解决了`scott`用户被锁定的问题,而且还了解了如何有效地管理和维护Oracle数据库中的用户账户。这对于日常维护和管理工作非常有帮助。

    oracle表被锁定的完美解决方法

    ora-00031:session marked for kill处理oracle中杀不掉的锁一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那...

    ORACLE表死锁的解决方法亲测有效!

    本文将深入探讨ORACLE表死锁的成因、检测与解决方法,基于实际测试经验分享有效的解决方案。 ### ORACLE表死锁的成因 死锁通常发生在多个事务同时对同一资源进行互斥访问的情况下。具体而言,当一个事务请求锁定一...

    oracle中判断表是否被锁

    ### Oracle中判断表是否被锁及解锁方法 在Oracle数据库管理过程中,经常会出现表或行被锁定的情况,这可能会导致应用程序出现性能问题甚至挂起。因此,了解如何判断表是否被锁以及如何解锁是非常重要的技能。 ####...

    ORACLE常见问题及解决办法

    本篇文章将深入探讨Oracle常见问题及其解决办法,尤其是关于用户管理的相关知识。 首先,我们来了解一下Oracle用户的基本概念。在Oracle中,用户是一个具有特定权限的实体,它可以连接到数据库并执行各种操作。创建...

    ORACLE 如何查询被锁定表及如何解锁释放session

    本文介绍了如何查询Oracle数据库中被锁定的表以及如何解锁并释放相关的会话。通过上述SQL语句,可以有效地管理和解决由锁定引发的问题。然而,在实际应用过程中,还需要根据具体情况综合考虑各种因素,以确保数据库...

    oracle死锁原因解决办法

    ### Oracle死锁原因及解决办法 #### 一、Oracle死锁概述 在Oracle数据库系统中,死锁是一种常见的并发问题,它会导致多个事务之间互相等待对方释放资源而无法继续执行,最终导致整个系统的运行效率降低甚至停滞。...

    oracle常见错误及解决方法

    Oracle数据库在运行过程中可能会遇到各种错误,这些错误通常以ORA-XXXX的形式呈现,每个错误代码对应着特定的问题和解决策略。以下是一些常见的Oracle错误及其解释和解决方法: 1. ORA-00001: 违反唯一约束条件 当...

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

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

    oracle存储过程解锁

    在IT领域,尤其是在数据库管理与优化中,存储过程的解锁是一项关键技能,尤其对于Oracle数据库而言。当存储过程被锁定时,可能会...通过遵循上述步骤,可以有效解决存储过程被锁定的问题,保障数据库系统的健康运行。

    oracle数据库解决死锁

    在Oracle数据库中,死锁可能是由多种原因引起的,例如资源竞争、锁定冲突、事务延迟等。为了解决死锁问题,需要使用PL/SQL语句来检测和解决死锁。 在PL/SQL中,可以使用以下语句来解决死锁问题: 1. 使用SELECT...

    oracle锁表解决

    Oracle数据库中的锁表问题可以通过一系列步骤来解决:首先识别出被锁定的表及其锁定模式;然后查找并确认锁定的会话;接着根据情况选择合适的方法来解除锁定(如终止会话或进程)。在整个过程中,数据库管理员需要...

    如何解决Oracle杀死死锁进程

    解决 Oracle 杀死死锁进程的方法可以分为两步:首先,查找被锁定的表和锁定的会话,然后杀死锁定的会话和操作系统进程。 在解决死锁问题时,需要注意以下几点: * 需要拥有足够的权限来杀死锁定的会话和操作系统...

    Oracle the account is locked解决办法

    ### Oracle账户锁定问题详解与解决方法 在Oracle数据库管理中,遇到账户被锁定的问题是非常常见的。这类问题通常出现在用户尝试多次使用错误的密码登录时,系统为了安全考虑自动锁定了该账户。本文将针对“Oracle ...

    oracle出错解决方案

    本文将详细介绍在Windows 7系统下安装Oracle 11g时可能遇到的兼容性问题及相应的解决方法。 #### 安装过程中出现的兼容性问题 当尝试在Windows 7上安装Oracle 11g时,可能会在“产品特定的先决条件检查”阶段遇到...

Global site tag (gtag.js) - Google Analytics