一、問題

為額爾古納等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及額爾古納網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為做網(wǎng)站、成都做網(wǎng)站、額爾古納網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
使用system賬號登錄oracle,系統(tǒng)提示
如何解除Oracle wbr帳號鎖定(the wbraccount wbris wbrlocked)
二、解決辦法
1、使用oracle用戶登錄系統(tǒng)
2、執(zhí)行如下步驟:
3、$ sqlplus /nolog
4、SQL connect /as sysdba
Connected.
5、SQL alter user system account unlock;User altered.
三、鎖定賬號方法
1、SQL alter user system account lock;
User altered.
四、修改帳號口令
1、SQL ALTER USER system IDENTIFIED BY sysPasswd;
一些ORACLE中的進程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟數(shù)據(jù)庫。現(xiàn)在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級再殺。\x0d\x0a1.下面的語句用來查詢哪些對象被鎖:\x0d\x0aselectobject_name,machine,s.sid,s.serial#\x0d\x0afromv$locked_objectl,dba_objectso,v$sessions\x0d\x0awherel.object_id=o.object_idandl.session_id=s.sid;\x0d\x0a2.下面的語句用來殺死一個進程:\x0d\x0aaltersystemkillsession'24,111';(其中24,111分別是上面查詢出的sid,serial#)\x0d\x0a【注】以上兩步,可以通過Oracle的管理控制臺來執(zhí)行。\x0d\x0a3.如果利用上面的命令殺死一個進程后,進程狀態(tài)被置為"killed",但是鎖定的資源很長時間沒有被釋放,那么可以在os一級再殺死相應的進程(線程),首先執(zhí)行下面的語句獲得進程(線程)號:\x0d\x0aselectspid,osuser,s.program\x0d\x0afromv$sessions,v$processp\x0d\x0awheres.paddr=p.addrands.sid=24(24是上面的sid)\x0d\x0a4.在OS上殺死這個進程(線程):\x0d\x0a1)在unix上,用root身份執(zhí)行命令:\x0d\x0a#kill-912345(即第3步查詢出的spid)\x0d\x0a2)在windows(unix也適用)用orakill殺死線程,orakill是oracle提供的一個可執(zhí)行命令,語法為:\x0d\x0aorakillsidthread\x0d\x0a其中:\x0d\x0asid:表示要殺死的進程屬于的實例名\x0d\x0athread:是要殺掉的線程號,即第3步查詢出的spid。\x0d\x0a例:c:orakillorcl12345
1、首先以DBA的身份登錄Oracle10g。
2、修改SOCCT賬戶權限,"alteruserscottaccountunlock;"
3、修改HR賬戶權限,"alteruserhraccountunlock;"?在commit操作之后,繼續(xù):"alteruserhridentifiedbyhr;"
4、然后檢查狀態(tài),就會發(fā)現(xiàn)已經(jīng)解鎖了。
首先你要知道表鎖住了是不是正常鎖?因為任何DML語句都會對表加鎖。\x0d\x0a\x0d\x0a你要先查一下是那個會話那個sql鎖住了表,有可能這是正常業(yè)務需求,不建議隨便KILLsession,如果這個鎖表是正常業(yè)務你把sessionkill掉了會影響業(yè)務的。\x0d\x0a建議先查原因再做決定。\x0d\x0a\x0d\x0a(1)鎖表查詢的代碼有以下的形式:\x0d\x0aselectcount(*)fromv$locked_object;\x0d\x0aselect*fromv$locked_object;\x0d\x0a(2)查看哪個表被鎖\x0d\x0aselectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_objecta,dba_objectsbwhereb.object_id=a.object_id;\x0d\x0a(3)查看是哪個session引起的\x0d\x0aselectb.username,b.sid,b.serial#,logon_timefromv$locked_objecta,v$sessionbwherea.session_id=b.sidorderbyb.logon_time;\x0d\x0a\x0d\x0a(4)查看是哪個sql引起的\x0d\x0aselectb.username,b.sid,b.serial#,c.*fromv$locked_objecta,v$sessionb,v$sqlcwherea.session_id=b.sid\x0d\x0aandb.SQL_ID=c.sql_idandc.sql_id=''\x0d\x0aorderbyb.logon_time;\x0d\x0a\x0d\x0a(5)殺掉對應進程\x0d\x0a執(zhí)行命令:altersystemkillsession'1025,41';\x0d\x0a其中1025為sid,41為serial#.
原因:oracle輸入密碼不正確,試了10次后,會自動鎖定用戶。
解決方法:使用sqlplus命令行解鎖。
步驟:
1、打開sqlplus窗口,用sysdba角色登錄
2、請輸入用戶名: /as sysdba
3、SQLalter user GALTTEST account unlock;
? 用戶已更改。
解鎖成功啦!
在對指定表做append操作,其他再做truncate時候,會產(chǎn)生鎖表,如下驗證步驟,
1、創(chuàng)建測試表,
create table test_lock(id number, value varchar2(200));
2、執(zhí)行append語句;并且不做提交,insert /*+append*/ into test_lock values(1,1);
3、再次執(zhí)行清表語句,truncate table test_lock;報鎖表錯誤,
4、查看鎖表語句,發(fā)現(xiàn)被鎖表,
select b.object_name, t.*
from v$locked_object t, user_objects b
where t.object_id = b.object_id
分享文章:oracle鎖定了怎么辦 oracle數(shù)據(jù)庫鎖定
本文網(wǎng)址:http://chinadenli.net/article20/hipojo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、、企業(yè)建站、小程序開發(fā)、品牌網(wǎng)站制作、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)