oracle数据库实例被锁如何解决?最简单的办法就是重新启动数据库 。如果不能重新启动,可以通过控制台登陆数据库,然后通过绘画找到加锁的进程,直接将其结束 。
oracle怎么彻底解决锁的问题1、生成Kill Session语句
select 'alter system kill session ''' || SID ||',' || SERIAL# || ''';' from
(
select distinct a.sid, a.Serial#, status, machine, LOCKWAIT, logon_time
from v$session a, v$locked_object b
where (a.status = 'ACTIVE' or a.status = 'INACTIVE')
and a.sid = b.session_id
and b.ORACLE_USERNAME='XYHISTEST'--加上用户名是避免把其他系统的会话也关闭,以免伤及无辜
)
2、批量执行第一步生成的语句
alter system kill session 'sid,serial#';
--alter system kill session '6976,33967';
3、查询oracle用户名,机器名,锁表对象
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
/*或者
select s.SID, s.OSUSER, p.spid as OSPID, s.MACHINE, s.TERMINAL, s.PROGRAM
from v$session s, v$process p
where s.sid = 6--session_id
and s.paddr = p.addr;
*/
4、查询是执行何sql语句导致锁表的
select b.sql_text
from v$session a, v$sql b
where a.sid = 6 --session_id
and a.SQL_ADDRESS = b.ADDRESS( );
/*--或者
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#;
*/
oracle中的账户被锁定了该怎么解开?the account is locked意思是账户被锁定了,这种情况需要大家去解锁,通常情况下需要用管理员权限进行登录,直接使用指令alter user USERNAME account unlock进行解锁就可以了哦 。
拓展资料:
在oracle中,尝试多次登录未成功或者此用户被管理员手工锁定或者用户密码到期、未按时修改密码,等等,那么此账户将会被锁定(lock) 。当使用被锁定的账户登录时,系统会报错:ORA-28000: the account is locked 。
详细处理步骤如下:
1.使用system或者sys账户登录,注意请以管理员身份登录 。Sytem和sys的默认密码请在网上查找 。本文以sys账户为例,sys的默认密码是:change_on_install 。
2.使用命令解锁用户 。命令为:alter user username account unlock;其中username为被锁定的用户名 。
3.重置用户密码 。命令为:alter user username identified by password;其中username为用户名,password为新密码 。
4.使用账户重新尝试登陆 。如果命令全部执行成功,那么应该可以正常登陆系统 。
用户为什么被锁定呢?可能是下面几个原因造成的:
1.尝试多次登录未成功(可能密码不正确) 。
2.此用户被管理员手工锁定 。
3.用户密码到期、未按时修改密码,等等 。
oracle数据库死锁怎么解决Oracle数据库出现死锁oracle数据锁死怎么解决的时候可以按照以下处理步骤加以解决oracle数据锁死怎么解决:
第一步:尝试在sqlplus中通过sql命令进行删除oracle数据锁死怎么解决 , 如果能够删除成功oracle数据锁死怎么解决,则万事大吉!但通常情况下 , 出现死锁时,想通过命令行或者通过Oracle的管理工具删除有死锁的session,oracle只会将该session标记为killed , 但无法清除掉,往往需要通过第二步在操作系统层级进行删除!
Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0
Connected as quik
SQL select xidusn, object_id, session_id, locked_mode from v$locked_object; --查死锁的对象,获取其SESSION_ID
XIDUSN OBJECT_ID SESSION_ID LOCKED_MODE
---------- ---------- ---------- -----------
10 30724 29 3
10 30649 29 3
SQL select username,sid,serial# from v$session where sid=29; --根据上步获取到的sid查看其serial#号
USERNAME SID SERIAL#
------------------------------ ---------- ----------
QUIK 29 57107
SQL alter system kill session '29,57107'; --删除进程,如已经删除过,则会报ora-00031的错误;否则oracle会将该session标记为killed状态,等待一段时间看能否会自动消失,如长时间消失不掉,则需要做后续步骤
alter system kill session '29,57107'
ORA-00031: session marked for kill
SQL select pro.spid from v$session ses,v$process pro where ses.sid=29 and ses.paddr=pro.addr; --查看spid号,以便在操作系统中根据该进程号删除进程
SPID
------------
2273286
第二步:进入操作系统进行删除进程,本示例的操作系统是IBM aix 。
login: root --录入用户名
root's Password: --录入密码
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
Last unsuccessful login: Fri Apr 23 14:42:57 BEIDT 2010 on /dev/pts/1 from 10.73
.52.254
Last login: Fri Apr 23 15:27:50 BEIDT 2010 on /dev/pts/2 from 10.73.52.254
# ps -ef|grep 2273286 --查看进程详情
root 2289864 2494636 0 17:07:15 pts/1 0:00 grep 2273286
oracle 2273286 1 0 14:38:24 - 0:21 oracleQUIK (LOCAL=NO)
# kill -9 2273286 --删除进程,小心操作 , 别写错进程号,如果oracle的关键进程被删,数据库会崩溃的!
# ps -ef|grep 2273286 --再次查看
root 2289864 2494636 0 17:07:15 pts/1 0:00 grep 2273286
For Windows, at the DOS Prompt: orakill sid spid
For UNIX at the command line kill –9 spid
oracle数据库表被锁了不能操作怎么办首先你要知道表锁住了是不是正常锁?因为任何DML语句都会对表加锁 。
你要先查一下是那个会话那个sql锁住了表,有可能这是正常业务需求,不建议随便KILL
session,如果这个锁表是正常业务你把session
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)查看是哪个sql引起的
select
b.username,b.sid,b.serial#,c.*
from
v$locked_object
a,v$session
b,v$sql
c
where
a.session_id
=
b.sid
and
b.SQL_ID
=
c.sql_id
and
c.sql_id
=
''
order
by
b.logon_time;
(5)杀掉对应进程
执行命令:alter
system
kill
session'1025,41';
其中1025为sid,41为serial#.
oracle数据库被锁了怎么办用户被锁oracle数据锁死怎么解决了oracle数据锁死怎么解决?
FAILED_LOGIN_ATTEMPTS参数默认是10,即:用户连续输入10次错误密码,用户会被锁?。?
可以使用其他拥有DBA权限oracle数据锁死怎么解决的用户进行解锁;
alter user username account unlock;
如果是数据库内部出现死锁或阻塞会话,可以先查出阻塞的会话 ,
select * from dba_waiters;
在杀掉阻塞的会话
alter system kill session 'sid,serial#';
测试环境,可以直接重启数据库oracle数据锁死怎么解决!
【oracle数据锁死怎么解决 oracle数据库死锁解决方法】关于oracle数据锁死怎么解决和oracle数据库死锁解决方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 手机网络动作类游戏有哪些,手机网络动作类游戏有哪些好玩的
- 让mysql结果集按字段排序,mysql按长度排序
- 路由器和宽带怎么连接,路由器和路由器怎么连接
- u盘里怎么找到无线网络,u盘wifi没反应怎么办
- java代码修改题 java改错题
- 安卓7.0可用nds模拟器,安卓nds模拟器推荐
- sqlserver2008登录失败,sqlserver2008远程过程调用失败
- 什么油可以抹头发视频,可以抹头发的油
- java怎么看多少代码行 javadoc怎么看