网站首页 > 文章中心 > 其它

oracle锁如何解除

作者:小编 更新时间:2023-09-06 11:41:48 浏览量:490人看过

oracle如何解锁?

一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库.现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀.

①下面的语句用来查询哪些对象被锁:

select object_name,machine,s.sid,s.serial#

from v$locked_object l,dba_objects o ,v$session s

where l.object_id = o.object_id and l.session_id=s.sid;

【注】以上两步,可以通过Oracle的管理控制台来执行.

select spid, osuser, s.program

from v$session s,v$process p

①.)在unix上,用root身份执行命令:

orakill sid thread

其中:

sid:表示要杀死的进程属于的实例名

Oracle账号被锁定如何解锁

①.、查看环境变量ORACLE_SID的设置情况:

windows:

echo

%ORACLE_SID%

linux:

$ORACLE_SID

设置环境变量ORACLE_SID的值为你想登录的oracle实例的SID:

set

ORACLE_SID=orcl

键入命令:sqlplus

/

as

sysdba

就可以以sysdba的身份登录到oracle了!

linux系统下,如果找不到sqlplus命令的话,请切换到oracle用户.

在sqlplus窗口执行命令:

alter

user

you_username

identified

by

you_password;

就可以修改你的用户的密码了~

如果此时用户被锁定,没关系:

既然是被锁住了,那就通过解锁system用户.

SQL

system

account

unlock;

User

altered.

select

username,account_status

from

dba_users

where

username='SYSTEM';

USERNAME

ACCOUNT_STATUS

----------

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

SYSTEM

OPEN

如何解除Oracle 帐号锁定

第一段:问题

使用system账号登录oracle,系统提示

如何解除Oracle wbr帐号锁定(the wbraccount wbris wbrlocked)

第二段:解决办法

①.、使用oracle用户登录系统

Connected.

第三段:锁定账号方法

①.、SQL alter user system account lock;

User altered.

第四段:修改帐号口令

①.、SQL ALTER USER system IDENTIFIED BY sysPasswd;

oracle怎么彻底解决锁的问题

①.、生成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'--加上用户名是避免把其他系统的会话也关闭,以免伤及无辜

)

alter?system?kill?session?'sid,serial#';

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

and?s.paddr?=?p.addr;

*/

select?b.sql_text

from?v$session?a,?v$sql?b

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#;

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章