最近老是碰到数据库中的数据表被锁需要解锁的问题,弄了一番后,现在把方法贡献出来给大家,请大家多指教
1、select * from v$locked_object 查出被锁定的对象,其中object_id是对象的ID,session_id是被锁定对象有session ID;
2、select object_name, object_type from dba_objects where object_id = 刚才查出来的object_id;(根据v$locked_object里的object_id提出来的)
这样来查被锁定这个对象的名字,如果能确定是哪个TABLE被锁并且要解锁,则再执行
3、select sid, serial#, machine, program from v$session where sid =第1步中查出来的session_id;(是根据v$locked_object对应锁定记录的session_id找出来的) 然后
4、alter system kill session ‘sid,serial#’;用来杀死这个会话;
以上几个步骤即能解决对象被锁定问题。
另外附上锁定一个表的语句:
-----查锁
SQL> 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;
-----解锁
SQL> ALTER SYSTEM KILL SESSION '10,382';
Oracle数据库表查看锁以及解锁SQL#
//查询被锁的表select A.sid, b.serial#,decode(A.type, 'MR', 'Media Recovery', 'RT','Redo Thread', 'UN','User Name', 'TX', 'Transaction', 'TM', 'DML', 'UL', 'PL/SQL User Lock', 'DX', 'Distributed Xaction', 'CF', 'Control File', 'IS', 'Instance State', 'FS', 'File Set', 'IR', 'Instance Recovery', 'ST', 'Disk Space Transaction', 'TS', 'Temp Segment', 'IV', 'Library Cache Invalida-tion', 'LS', 'Log Start or Switch', 'RW', 'Row Wait', 'SQ', 'Sequence Number', 'TE', 'Extend Table', 'TT', 'Temp Table', 'Unknown') LockType,c.object_name,b.username,b.osuser,decode(a.lmode, 0, 'None', 1, 'Null', 2, 'Row-S', 3, 'Row-X', 4, 'Share', 5, 'S/Row-X', 6, 'Exclusive', 'Unknown') LockMode,B.MACHINE,D.SPIDfrom v$lock a,v$session b,all_objects c,V$PROCESS Dwhere a.sid=b.sid and a.type in ('TM','TX')and c.object_id=a.id1AND B.PADDR=D.ADDR//用于解锁alter system kill session'SID,SERIAL#'
----------------------------------------------------------------------
oracle 解锁表步骤:
1:查看被锁的表
Sql代码
1.SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID
2. FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
3.WHERE A.OBJECT_ID = V.OBJECT_ID
SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID
FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
WHERE A.OBJECT_ID = V.OBJECT_ID
2:查看锁
Sql代码
1.SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID
2. FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
3.WHERE A.OBJECT_ID = V.OBJECT_ID
SELECT A.OBJECT_NAME, A.STATUS, V.SESSION_ID
FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
WHERE A.OBJECT_ID = V.OBJECT_ID 2、杀死锁
Sql代码
1.--alter system kill session 'sid,serial#';
2.alter system kill session '156,87';--查看表大小
----------------------------------------------------------------------
经过测试,下面的两条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
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
---140 78 MSJL PC2011031300NIM\Administrator NC_DELIVETOSAOUT 3
---行id 锁标识 数据库用户 哪一台机器 被锁表 锁模式
----解锁方式,将“行id”和“锁标识”赋给下面的语句即可解锁
alter system kill session '140,78';
----------------------------------------------------------------------
- 大小: 44.6 KB
分享到:
相关推荐
本文将深入探讨SQL Server与Oracle这两种主流数据库系统如何有效避免数据锁定的问题,并通过具体实例进行分析。 #### 数据锁定概述 数据锁定通常发生在多用户环境下的数据库操作中。当多个用户尝试同时访问或修改...
在日常操作中,有时可能会发生误操作,如误删除数据或锁定问题,本篇文章将详细讲解如何在Oracle中恢复误删除数据以及解锁相关操作。 1. **恢复误删除数据** 当你不小心删除了数据库表中的数据时,Oracle提供了一...
Oracle到Oracle的数据同步是一个常见的需求,特别是在企业级应用中,为了保证多个数据库实例间的数据一致性,需要进行实时或定时的数据同步。在这个场景中,我们关注的是如何在两个不同的Oracle数据库之间实现数据表...
### Oracle 数据字典参考知识点详解 #### 一、Oracle 数据字典概述 Oracle 数据字典是存储关于数据库元数据信息的特殊集合,这些信息包括表、视图、索引、用户权限等。对于数据库管理员(DBA)以及开发人员来说,...
一、Oracle数据结构基础 1. 表(Table):表是Oracle数据库中最基本的数据存储单元,由一系列行(Records)和列(Columns)组成,用来存储特定类型的数据。每列都有一个数据类型,如NUMBER、VARCHAR2或DATE等。 2....
首先,我们来探讨Oracle数据导入到MySQL的原理。数据迁移通常涉及数据抽取、转换和加载(ETL)过程。在本例中,"oracle2mysql"工具可能通过以下步骤工作: 1. **数据抽取**:工具连接到Oracle数据库,通过SQL查询...
Oracle 数据源配置和锁机制详解 Oracle 数据源是指 Oracle 数据库管理系统中,用于存储和管理数据的来源。配置 Oracle 数据源需要了解 Oracle 数据库的基本概念和锁机制,避免锁机制对数据库的影响。 Oracle ...
Oracle10g 数据仓库是Oracle公司推出的一款专为大规模数据存储、管理和分析设计的数据仓库解决方案。在Oracle Database 10g版本中,Oracle加强了其数据仓库的功能,以支持更高效、灵活的数据处理和决策支持。以下是...
Oracle事务与锁定是数据库管理系统中的核心概念,它们对于确保数据的完整性和一致性至关重要。事务是数据库操作的基本单元,它封装了一系列的数据库操作,确保这些操作要么全部成功,要么全部失败,从而保持数据库的...
Oracle 数据块深入分析总结 Oracle 数据块是 Oracle 数据库中最基本的存储单元,每个数据块都包含了数据、索引、事务控制信息等内容。在本文中,我们将对 Oracle 数据块的内部结构进行深入分析,并且使用 dump 和 ...
### 解决Oracle system或用户被锁定问题 在日常的数据库管理与维护工作中,经常会遇到Oracle系统用户或普通用户被锁定的问题。这种情况不仅会影响系统的正常使用,还可能导致数据丢失或业务中断等严重后果。本文将...
数据库并行访问,也就是两个或两以上用户同时访问同一数据,这也是数据库引擎如何设计和实现 适度反应所面临的最大问题。设计优良、性能卓越的数据库引擎可以轻松地同时为成千上万的用户服务。而“底气不足”的...
本资源提供了 Oracle 数据操作和控制语言的详细解释,涵盖了 SQL 语言的四大类:数据查询语言 DQL,数据操纵语言 DML,数据定义语言 DDL,数据控制语言 DCL。文章着重介绍了 DML 和 DCL 两种语言在 Oracle 中的使用...
然而,在实际操作中,应根据具体场景和需求调整SQL语句,比如选择合适的去重依据列、处理可能出现的事务和锁定问题等,以确保数据操作的正确性和高效性。此外,对于大型表或高并发系统,可能还需要考虑更高级的性能...
### Oracle 修改锁定用户的知识点 在Oracle数据库管理过程中,经常需要对用户进行管理操作,比如解锁、锁定用户或者修改用户密码等。这些操作对于确保数据库的安全性和数据的一致性至关重要。根据给定的信息,我们...
Consistent 方式是专门解决这个问题的,它在处理父表前首先锁定主表和子表需要复制的记录,在增量数据复制时,插入主表和子表的新增量数据都会被本次抽取过程忽略,放在下次抽取时处理。 ODI 通过 LogMiner 技术...
- 导入数据可能涉及锁定表,避免与其他用户操作冲突。 - 用户创建时要谨慎分配权限,避免权限过大导致安全风险。 - 定期审查和更新用户权限,以保持良好的数据库安全实践。 在实际操作中,可以参考给定的文档...
### 解决Oracle 11g中scott用户默认被锁定的问题 #### 背景介绍 在使用Oracle数据库的过程中,用户经常会遇到系统预设的一些示例用户被锁定的情况,其中最为人熟知的就是`scott`用户。`scott`用户是在安装Oracle...
这时,“mysql-oracle数据转换工具”就显得尤为关键。 该工具的核心功能是实现数据的高效、准确转换,确保在两个不同数据库系统间的数据一致性。以下是一些关于MySQL和Oracle数据库以及数据转换的关键知识点: 1. ...