oracle 表锁定解锁

Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。
(1)锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
(2)查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
(3)查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
(4)杀掉对应进程
执行命令:alter system kill session‘1025,41‘;
其中1025为sid,41为serial#.

-------------------------------------------------------------------------------------------------------------------------------------

赋权:

【Oracle】想查询相关的v$视图,但是提示表或视图不存在解决办法

原因是使用的用户没有相关的查询权限导致

解决办法:

grant select  any dictionary to 用户;    --这个权限比较大

这个权限是最低的要求,但是可以访问到v$相关视图

grant select_catalog_role to 用户;

收回权限

revoke select_catalog_role from user;

--------------------- 作者:zclinux_ 来源:CSDN 原文:https://blog.csdn.net/imliuqun123/article/details/79192396?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!

备注:

赋权后,该账户重新登录。

原文地址:https://www.cnblogs.com/sunice/p/9771117.html

时间: 2024-10-10 08:55:05

oracle 表锁定解锁的相关文章

Oracle 表锁定

--锁表查询SQL SELECT object_name, machine, s.sid, s.serial#FROM gv$locked_object l, dba_objects o, gv$session sWHERE l.object_id = o.object_idAND l.session_id = s.sid; --释放SESSION SQL:--alter system kill session 'sid, serial#'; ALTER system kill session

Oracle的锁表与解锁

Oracle的锁表与解锁 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) LOCK_LEVEL, o.owner,o.object_name,o.object_type, s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser FROM v$session s,v$lock l,dba_objects o WHERE

oracle表锁住 解锁办法

第一种方法: 用系统账户如sys      as  SYSDBA 登录进去 1.查看数据库锁,诊断锁的来源及类型:  select object_id,session_id,locked_mode from v$locked_object;  或者用以下命令:  select b.owner,b.object_name,l.session_id,l.locked_mode  from v$locked_object l, dba_objects b  where b.object_id=l.ob

Oracle锁表及解锁

为了防止用户在同一时间并发地访问和修改资源,ORACLE使用不同类型的锁控制对数据的并发访问,以防止用户之间出现破坏性的交互操作 1,锁表 锁定表的通用语法: lock table 表名 in <share or share update or exclusive mode> 共有三种锁表模式: 共享模式(in share mode) 共享更新模式(in share update mode) 排他锁模式(in exclusive mode) 锁表实例: //以排他锁模式锁定tRun表 lock

sqlserver锁表、解锁、查看锁表

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 面演示一个实例,它使用sys.dm_tran_locks动态视图监视数据库中锁的活动. 打开一个查询窗口,执行如下语句: USE AdventureWorks BEGIN TRAN SELECT ProductID, ModifiedDate FROM Production.ProductDocument WITH (TABLOCKX) 打开另一个查询窗口

oracle账户锁定解决方法

今天进使用orcle中,发现系统中,system账户登录里提示账户被锁定 ,后来查了查资料,问题解决,方法如下: Microsoft Windows [版本 5.2.3790] (C) 版权所有 1985-2003 Microsoft Corp. C:Documents and SettingsAdministrator>sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 6月 24 10:43:39 2009 Copy

SQL Server数据库表锁定原理以及如何解除表的锁定

1. 数据库表锁定原理 1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据. 1.2 事务的ACID原则 1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性. 1.3.1 SQL Server中可以锁定的资源: 1.3.2 锁的粒度: 1.3.3 锁的升级: 锁的升级门限以及锁升级是由系统自动来确定的,不需要用户设置. 1.3.4 锁的类型: (1) 共享

【Sqlserver】各种数据库的锁表和解锁操作

SqlServer 查询被锁住的表和解锁表 --1.查看被锁表 SELECT request_session_id as spid,OBJECT_NAME(resource_associated_entity_id) as tableName FROM sys.dm_tran_locks WHERE resource_type='OBJECT' --spid 锁表进程 :tableName 被锁表名 --2.解锁 declare @spid int Set @spid = 被锁表的进程号 dec

Record is locked by another user --Oracle行锁解锁

Oracle修改表中记录时出现record is locked by another user的问题 在操作表时没有commit,导致表被锁,只要执行下面两行语句,就可以了将行锁解锁了. Select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid; -- 查看被锁表的sid 和 serial# 2.  alter system