新聞中心
oracle數(shù)據(jù)庫(kù)表被鎖了怎么解鎖
1、在做Oracle監(jiān)聽程序測(cè)試時(shí),發(fā)現(xiàn)帳戶已經(jīng)被鎖定。
創(chuàng)新互聯(lián)公司長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為湯旺企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),湯旺網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
2、在數(shù)據(jù)庫(kù)安裝電腦上,點(diǎn)擊開始打開運(yùn)行窗口。
3、在運(yùn)行窗口輸入CMD,調(diào)出命令提示符界面。
3、在命令提示符下面,用管理員身份登入到數(shù)據(jù)庫(kù)sqlplus / as sysdba。
4、輸入解鎖命令alter user Scott account unlock后回車。
5、看見用戶已更改的字樣,表示命令已成功執(zhí)行。
6、再切換到監(jiān)聽程序驗(yàn)證,原來的ora-28000帳戶被鎖定的提示已經(jīng)不存在了。用戶解鎖成功。
Oracle數(shù)據(jù)庫(kù),如何解除數(shù)據(jù)庫(kù)用戶賬戶的鎖定呢???如何修改口令呢???
這兩個(gè)操作都需要用sysdba身份去修改,方法如下:
1、win+R,輸入cmd,回車。
2、以sysdba身份連接oracle的sqlplus。
sqlplus?/nolog
conn?/?as?sysdba
3、解鎖語(yǔ)句用:
alter?user?用戶名?account?unlock;
4、修改口令語(yǔ)句用:
alter?user?用戶名?identified?by?密碼;
oracle怎么徹底解決鎖的問題
1、生成Kill Session語(yǔ)句
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'--加上用戶名是避免把其他系統(tǒng)的會(huì)話也關(guān)閉,以免傷及無辜
)
2、批量執(zhí)行第一步生成的語(yǔ)句
alter?system?kill?session?'sid,serial#';
--alter?system?kill?session?'6976,33967';
3、查詢oracle用戶名,機(jī)器名,鎖表對(duì)象
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、查詢是執(zhí)行何sql語(yǔ)句導(dǎo)致鎖表的
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一個(gè)表的所有行鎖
查看哪個(gè)表被鎖
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
查看是哪個(gè)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
網(wǎng)站欄目:oracle數(shù)據(jù)怎么刪鎖,oracle數(shù)據(jù)庫(kù)的鎖
文章源于:http://fisionsoft.com.cn/article/hcoseh.html