1、首先以DBA的身份登錄Oracle10g。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供庫倫網(wǎng)站建設(shè)、庫倫做網(wǎng)站、庫倫網(wǎng)站設(shè)計(jì)、庫倫網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、庫倫企業(yè)網(wǎng)站模板建站服務(wù),10多年庫倫做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
2、修改SOCCT賬戶權(quán)限,"alteruserscottaccountunlock;"
3、修改HR賬戶權(quán)限,"alteruserhraccountunlock;"?在commit操作之后,繼續(xù):"alteruserhridentifiedbyhr;"
4、然后檢查狀態(tài),就會發(fā)現(xiàn)已經(jīng)解鎖了。
這兩個操作都需要用sysdba身份去修改,方法如下:\x0d\x0a1、win+R,輸入cmd,回車。\x0d\x0a\x0d\x0a2、以sysdba身份連接oracle的sqlplus。\x0d\x0a\x0d\x0asqlplus /nolog\x0d\x0aconn / as sysdba\x0d\x0a\x0d\x0a3、解鎖語句用:\x0d\x0aalter user 用戶名 account unlock;\x0d\x0a\x0d\x0a4、修改口令語句用:\x0d\x0aalter user 用戶名 identified by 密碼;
1、找到并進(jìn)入運(yùn)行窗口:(可以用windows+r快捷鍵哦)輸入sqlplus命令:如圖
2、進(jìn)入新窗口后使用scott/tiger用戶和密碼進(jìn)行登錄會發(fā)現(xiàn)登錄不成功:如圖
3、這時(shí)我們可以使用system用戶進(jìn)行登錄,應(yīng)為此用戶的權(quán)限排第二,并且密碼我們已經(jīng)在安裝時(shí)輸入了了,所以是可以登錄進(jìn)入的:如圖
4、system登錄成功之后就可以使用命令給用戶進(jìn)行解鎖了:如圖
5、最后再用scott/tiger用戶時(shí),你可以神奇的發(fā)現(xiàn)此時(shí)能連接成功了:如圖
1. 先通過top命令查看產(chǎn)用資源較多的spid號
2.查詢當(dāng)前耗時(shí)的會話ID,用戶名,sqlID等:
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session
where paddr in (select addr from v$process where spid in ('5648612','256523'));
3. 如果上一步sql_id或者 hash_value不為空,則可用v$sqlarea查出當(dāng)前正在使用的sql
select sql_text
from v$sqltext_with_newlines
where hash_value = hash_value
order by piece;
也可直接使用:
select a.*,b.SQL_TEXT from (
select sid,serial#,machine,username,program,sql_hash_value,sql_id,
? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session
where paddr in (select addr from v$process where spid in ('23226'))
) a,v$sql b
where a.sql_id? = b.SQL_ID(+)
4.kill占用大資源的session
Alter system kill session 'SID,SERIAL#'
解鎖:
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 '524,1095'; (其中24,111分別是上面查詢出的sid,serial#)
3.再一次查詢目前鎖定的對象,若發(fā)現(xiàn)以上方法不能解除鎖定的表,則用以下方法:
3.1 執(zhí)行下面的語句獲得進(jìn)程(線程)號:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=524 (524是上面的sid)
一些ORACLE中的進(jìn)程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長時(shí)間不釋放,有時(shí)實(shí)在沒辦法,只好重啟數(shù)據(jù)庫?,F(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.下面的語句用來殺死一個進(jìn)程:\x0d\x0aaltersystemkillsession'24,111';(其中24,111分別是上面查詢出的sid,serial#)\x0d\x0a【注】以上兩步,可以通過Oracle的管理控制臺來執(zhí)行。\x0d\x0a3.如果利用上面的命令殺死一個進(jìn)程后,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長時(shí)間沒有被釋放,那么可以在os一級再殺死相應(yīng)的進(jìn)程(線程),首先執(zhí)行下面的語句獲得進(jìn)程(線程)號:\x0d\x0aselectspid,osuser,s.program\x0d\x0afromv$sessions,v$processp\x0d\x0awheres.paddr=p.addrands.sid=24(24是上面的sid)\x0d\x0a4.在OS上殺死這個進(jìn)程(線程):\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:表示要?dú)⑺赖倪M(jìn)程屬于的實(shí)例名\x0d\x0athread:是要?dú)⒌舻木€程號,即第3步查詢出的spid。\x0d\x0a例:c:orakillorcl12345