半專業(yè)回答:
創(chuàng)新新互聯(lián),憑借十余年的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),本著真心·誠(chéng)心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有近千家案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)公司。
1,
這是個(gè)疑問(wèn)句嗎
2,如果只是
讀操作是不會(huì)加鎖的
3,事務(wù)2
什么操作都不行
4,事務(wù)2
可以加共享鎖,不能加排他鎖
問(wèn)題補(bǔ)充回答
讀操作就是select
,任何時(shí)刻都可以,因?yàn)槭欠亲枞x,由undo機(jī)制實(shí)現(xiàn)
共享鎖是保證表結(jié)構(gòu)不能被更改,但是可以更改沒(méi)有加排他鎖的數(shù)據(jù)
共享鎖是表級(jí)的,排他鎖是行級(jí)的
Oracle數(shù)據(jù)庫(kù)出現(xiàn)死鎖的時(shí)候可以按照以下處理步驟加以解決:
第一步:嘗試在sqlplus中通過(guò)sql命令進(jìn)行刪除,如果能夠刪除成功,則萬(wàn)事大吉!但通常情況下,出現(xiàn)死鎖時(shí),想通過(guò)命令行或者通過(guò)Oracle的管理工具刪除有死鎖的session,oracle只會(huì)將該session標(biāo)記為killed,但無(wú)法清除掉,往往需要通過(guò)第二步在操作系統(tǒng)層級(jí)進(jìn)行刪除!
Connected?to?Oracle9i?Enterprise?Edition?Release?9.2.0.1.0?
Connected?as?quik
SQL?select?xidusn,?object_id,?session_id,?locked_mode?from?v$locked_object;?--查死鎖的對(duì)象,獲取其SESSION_ID
XIDUSN?OBJECT_ID?SESSION_ID?LOCKED_MODE
----------?----------?----------?-----------
10?30724?29?3
10?30649?29?3
SQL?select?username,sid,serial#?from?v$session?where?sid=29;?--根據(jù)上步獲取到的sid查看其serial#號(hào)
USERNAME?SID?SERIAL#
------------------------------?----------?----------
QUIK?29?57107
SQL?alter?system?kill?session?'29,57107';?--刪除進(jìn)程,如已經(jīng)刪除過(guò),則會(huì)報(bào)ora-00031的錯(cuò)誤;否則oracle會(huì)將該session標(biāo)記為killed狀態(tài),等待一段時(shí)間看能否會(huì)自動(dòng)消失,如長(zhǎng)時(shí)間消失不掉,則需要做后續(xù)步驟
alter?system?kill?session?'29,57107'
ORA-00031:?session?marked?for?kill
SQL?select?pro.spid?from?v$session?ses,v$process?pro?where?ses.sid=29?and?ses.paddr=pro.addr;?--查看spid號(hào),以便在操作系統(tǒng)中根據(jù)該進(jìn)程號(hào)刪除進(jìn)程
SPID
------------
2273286
第二步:進(jìn)入操作系統(tǒng)進(jìn)行刪除進(jìn)程,本示例的操作系統(tǒng)是IBM aix。
login:?root?--錄入用戶名
root's?Password:?--錄入密碼
*******************************************************************************
*?*
*?*
*?Welcome?to?AIX?Version?5.3!?*
*?*
*?*
*?Please?see?the?README?file?in?/usr/lpp/bos?for?information?pertinent?to?*
*?this?release?of?the?AIX?Operating?System.?*
*?*
*?*
*******************************************************************************
Last?unsuccessful?login:?Fri?Apr?23?14:42:57?BEIDT?2010?on?/dev/pts/1?from?10.73
.52.254
Last?login:?Fri?Apr?23?15:27:50?BEIDT?2010?on?/dev/pts/2?from?10.73.52.254
#?ps?-ef|grep?2273286?--查看進(jìn)程詳情
root?2289864?2494636?0?17:07:15?pts/1?0:00?grep?2273286
oracle?2273286?1?0?14:38:24?-?0:21?oracleQUIK?(LOCAL=NO)
#?kill?-9?2273286?--刪除進(jìn)程,小心操作,別寫(xiě)錯(cuò)進(jìn)程號(hào),如果oracle的關(guān)鍵進(jìn)程被刪,數(shù)據(jù)庫(kù)會(huì)崩潰的!
#?ps?-ef|grep?2273286?--再次查看
root?2289864?2494636?0?17:07:15?pts/1?0:00?grep?2273286
For?Windows,?at?the?DOS?Prompt:?orakill?sid?spid
For?UNIX?at?the?command?line?kill?–9?spid
1、在sql語(yǔ)句后面加上for update可以獲得行鎖。
2、捕捉返回的sqlcode 和 sqlerrmc 可以得到返回值和錯(cuò)誤信息。
---
以上,希望對(duì)你有所幫助。
這兩個(gè)操作都需要用sysdba身份去修改,方法如下:
1、win+R,輸入cmd,回車(chē)。
2、以sysdba身份連接oracle的sqlplus。
sqlplus?/nolog
conn?/?as?sysdba
3、解鎖語(yǔ)句用:
alter?user?用戶名?account?unlock;
4、修改口令語(yǔ)句用:
alter?user?用戶名?identified?by?密碼;
用管理員登錄,解鎖
1、查看哪個(gè)賬戶被鎖定:
select username,account_status from dba_users where account_status like '%LOCK%';
2、解鎖
alter user XXX account unlock;
原因:oracle輸入密碼不正確,試了10次后,會(huì)自動(dòng)鎖定用戶。
解決方法:使用sqlplus命令行解鎖。
步驟:
1、打開(kāi)sqlplus窗口,用sysdba角色登錄
2、請(qǐng)輸入用戶名: /as sysdba
3、SQLalter user GALTTEST account unlock;
? 用戶已更改。
解鎖成功啦!
網(wǎng)站欄目:oracle行鎖怎么解鎖 oracle加行鎖
轉(zhuǎn)載來(lái)于:http://www.rwnh.cn/article12/hhshgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、網(wǎng)站策劃、建站公司、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)