一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟數(shù)據(jù)庫?,F(xiàn)在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級再殺。
創(chuàng)新互聯(lián)公司主營延津網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),延津h5微信小程序搭建,延津網(wǎng)站營銷推廣歡迎延津等地區(qū)企業(yè)咨詢
1.下面的語句用來查詢哪些對象被鎖:
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;
2.下面的語句用來殺死一個進(jìn)程:
alter system kill session '24,111'; (其中24,111分別是上面查詢出的sid,serial#)
【注】以上兩步,可以通過Oracle的管理控制臺來執(zhí)行。
3.如果利用上面的命令殺死一個進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長時間沒有被釋放,那么可以在os一級再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語句獲得進(jìn)程(線程)號:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上殺死這個進(jìn)程(線程):
1)在unix上,用root身份執(zhí)行命令:
#kill -9 12345(即第3步查詢出的spid)
2)在windows(unix也適用)用orakill殺死線程,orakill是oracle提供的一個可執(zhí)行命令,語法為:
orakill sid thread
其中:
sid:表示要殺死的進(jìn)程屬于的實例名
thread:是要殺掉的線程號,即第3步查詢出的spid。
例:c:orakill orcl 12345
今天訪問應(yīng)用的時候,發(fā)現(xiàn)賬號被鎖定,登錄oracle后,發(fā)現(xiàn)很多用戶都被鎖定了。看下提示信息,原來是密碼過期了導(dǎo)致賬號被鎖定。這里記錄下這幾個操作的常用命令,以方便以后自己的使用。
1.查看用戶的proifle是哪個,一般是default
SELECT username,PROFILE FROM dba_users;
2.查看對應(yīng)的概要文件(如default)的密碼有效期設(shè)置
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3.將概要文件(如default)的密碼有效期由默認(rèn)的180天修改成“無限制”(修改之后不需要重啟動數(shù)據(jù)庫,會立即生效)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4.對已經(jīng)鎖定和過期的賬號進(jìn)行解鎖
(1)alter user 用戶名 identified by 原來的密碼 account unlock; ----不用換新密碼,用戶名和密碼也不用加引號,這個命令會解鎖賬號,同時取消密碼過期。
(2)alter user 用戶名 account unlock; ----這個只會解鎖賬號,而不會取消密碼過期,所以建議使用上面的口令
在DBA的日常工作中,經(jīng)常遇到為Oracle用戶解鎖的操作;這篇文章給出在命令行下進(jìn)行Oracle用戶解鎖的操作方法,通過幾條簡單的解鎖語句就能完成此項工作。下面是具體的過程:
默認(rèn)的scott用戶是被鎖定的,先解鎖就能登陸上了。 使用下面的語句解鎖scott:
alter user scott account unlock;
解鎖之后可能會要求你該密碼:
alter user scott identified by tiger;
再登陸:
sqlplus scott/tiger
就能登陸了
Oracle鎖定和解鎖用戶的命令
SQL conn /as sysdba
已連接。
//scott 用戶在沒有設(shè)定tieger默認(rèn)密碼時,登陸不上
鎖定用戶的方法:
SQL alter user test account lock;
用戶已更改。
-------test用戶登陸數(shù)據(jù)庫,失敗了。
C:\sqlplus test/test
ERROR:
ORA-28000: the account is locked
Oracle用戶解鎖的方法:
SQL conn /as sysdba
SQL alter user test account unlock;
用戶已更改。這樣就完成了Oracle的用戶解鎖操作。
原因:oracle輸入密碼不正確,試了10次后,會自動鎖定用戶。
解決方法:使用sqlplus命令行解鎖。
步驟:
1、打開sqlplus窗口,用sysdba角色登錄
2、請輸入用戶名: /as sysdba
3、SQLalter user GALTTEST account unlock;
? 用戶已更改。
解鎖成功啦!
Oracle解鎖hr賬戶的前提是:必須存在hr賬戶,對于大多數(shù)剛安裝的Oracle來說,都是存在的。廢話不多說直接上例子。
1.打開cmd,使用sqlplus命令登錄上Oracle。
輸入:sqlplus system/口令
2.連接dba;
輸入:conn as sysdba;
3.解鎖hr,修改hr密碼(我設(shè)置的是hr)。
輸入解鎖命令:alter user hr account unlock;
輸入改密命令:alter user hr identified by hr;
4.連接hr。
打開sqldeveloper連接即可。
1、首先以DBA的身份登錄Oracle10g。
2、修改SOCCT賬戶權(quán)限,"alter user scott account unlock;"
3、修改HR賬戶權(quán)限,"alter user hr account unlock;" ?在commit操作之后,繼續(xù):"alter user hr identified by hr;"
4、然后檢查狀態(tài),就會發(fā)現(xiàn)已經(jīng)解鎖了。