ORACLE 查询被锁住的对象,并结束其会话的方法
使用Oracle时,发现有表被锁,又不知道是谁(或者哪个程序)锁的,怎么办 ?
两步走:
1、查找出被锁对象的会话ID和序列号
执行如下SQL:
-- 查询出被锁对象,并提供 kill 脚本 SELECT S.SID, S.MACHINE, O.OBJECT_NAME, L.ORACLE_USERNAME, L.LOCKED_MODE, S.OSUSESR, 'ALTER SYSTEM KILL SESSION '''|| S.SID || ', '|| S.SERIAL#||''';' AS KILL_COMMAND FROM V$LOCKED_OBJECT L, V$SESSION S, ALL_OBJECTS O WHERE L.SESSION_ID=S.SID AND L.OBJECT_ID=O.OBJECT_ID
2、KILL
复制出第1步查询结果中的 KILL_COMMAND 字段值,执行。
-- kill 的基本语法 ALTER SYSTEM KILL SESSION '$SID, $SERIAL#';
相关推荐
-
使用Oracle数据库登录时被告知用户被锁怎么解决
在登陆时被告知test用户被锁 1.用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. 2.查看具体的被锁时间 SQL> select username,lock_date from dba_users where username='TEST'; USERNAME LOCK_DATE --------------
-
Oracle用户密码过期和用户被锁的解决方法
今天正在上班的过程中,客户反映了他们的系统登录不了,经过我的一番检查,发现是因为数据库密码过期导致的,在网上查找相关资料发现还真有此种情况发生,在此顺便做了个整理,以便共同交流! 产生原因: 在oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 在oracle11g中默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10次",当输入密码错误次数达到设置值将导致此问题. 解
-
oracle查看被锁的表和被锁的进程以及杀掉这个进程
-- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name FROM v$process p, v$session a, v$locked_object b, all_objects c WHERE p.addr = a.paddr AND a.process = b.process AND c.object_id = b.object_id -- 2.
-
ORA-28002 Oracle 11g存在密码过期问题解决方案
故障现象 Oracle Database 11g 数据库普通用户登录时提示 ORA-28002: the password will expire within 7 days [11:01:00oracle@dvd db_1]$sqlplus wang/oracle SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 16 11:01:23 2012 Copyright (c) 1982, 2009, Oracle. All rights res
-
ORACLE 如何查询被锁定表及如何解锁释放session
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码 代码如下: --锁表查询SQLSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id =
-
深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法
可在PL/SQL中用如下SQL语句来查询当前数据库中哪些表被锁住了,并且是哪些用户来锁的这些表: SELECT A.OWNER, --OBJECT所属用户 A.OBJECT_NAME, --OBJECT名称(表名) B.XIDUSN, B.XIDSLOT, B.XIDSQN, B.SESSION_ID, --锁表用户的session B.ORACLE_USERNAME
-
Oracle 11g中密码过期问题详解
密码过期的原因一般有两种可能: 一.由于Oracle中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 二.由于Oracle中默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10次",当输入密码错误次数达到设置值将导致此问题. 第一种情况解决方法如下: 1.查看用户用的哪种profile策略,一般是default: 复制代码 代码如下: SQL> select username,p
-
Oracle数据库用户的密码过期时间如何修改为永不过期
Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天: 而所有的用户都使用该DEFAULT的profile,所以如果修改DEFAULT的过期规则会影响所有的用户: 所以我们新建一个profile,修改该profile的过期规则为无限期,在让某个用户适用于该profile,则该用户的过期规则会变更. 以下举例:修改MESSERIES用户的密码过期规则为UNLIMITED 1. 新建profile "
-
Oracle数据库账号被锁定解决方法
在Oracle数据库操纵中,登录Oracle账号时提示失败,并且Oracle账号频繁被锁定.造成此故障的原因是什么呢?本文就介绍了这一过程,经由过程慢慢排查我们就能找到该故障的原因了. 下面记录下查找这个题目的步调. 1. 找到账号被锁按时候 哄骗sqlplus或者sqldeveloper,查询账号被锁定的时候,相干语句如下: --批改当前会话的日期显示格局 alter session set nls_date_format = ""yyyy-MM-dd hh24:mi:ss"
-
oracle密码过期的彻底解决方案
越是赶时间,越耽误事,测试环境oracle密码过期. 不多说,解决:设置成永不过期(SIT环境). 1.以sys用户登录管理数据库:查询语句如下,未格式化查询语句.. select * from dba_profiles where profile = 'DEFAULT' and resource_name = 'PASSWORD_LIFE_TIME'; 2.修改有效期,提交. alter profile default limit password_life_time unlimited; c
随机推荐
- Delphi实现获取句柄并发送消息的方法
- C#解析json字符串总是多出双引号的原因分析及解决办法
- Nginx负载均衡配置简单配置方法
- IOS开发中使用writeToFile时的注意事项
- visual studio 2017企业版本安装(附序列号)
- 原生javascript实现图片无缝滚动效果
- Windows2012配置SQLServer2014AlwaysOn的图解
- 使用GD库生成带阴影文字的图片
- frename PHP 灵活文件命名函数 frename
- PHP中MD5函数使用实例代码
- Jsp敏感词过滤的示例代码
- Android GridView 滑动条设置一直显示状态(推荐)
- 如何解决mysqlimport: Error: 13, Can't get stat of 的问题
- php 修改上传文件大小限制实例详解
- PHP获取中国时间(上海时区时间)及美国时间的方法
- SQl Function 创建函数实例介绍
- JS设置随机出现2个数字的实例代码
- js控制页面控件隐藏显示的两种方法介绍
- VC中BASE64编码和解码使用详解
- python机器学习库常用汇总