解決辦法:
專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)平昌免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
重啟
SQL shutdown abort
SQL startup
重啟解決不了,檢查日志是否能夠切換
SQL alter system switch logfile;
3. 如果日志無法切換,檢查是否開歸檔,一般日志無法切換都是由于開歸檔,歸檔默認(rèn)在快速恢復(fù)區(qū),快速恢復(fù)區(qū)滿了造成。
使用RMAN刪除歸檔日志,清理快速恢復(fù)區(qū)空間
rman target /
RMAN delete archivelog all;
我根據(jù)我遇到的相同問題整理的解決方法
問題場(chǎng)景:
在更新或插入等DML操作中,因網(wǎng)絡(luò)中斷或忘記提交,導(dǎo)致相同記錄再次執(zhí)行時(shí)感知為長(zhǎng)時(shí)間無法執(zhí)行成功。
解決方法:
一、code處理
1.再次執(zhí)行相同記錄的語句;
2.查詢被阻塞的會(huì)話
SELECT l.session_id,o.owner,o.object_name, machine, s.sid, s.serial#,s.blocking_session
FROM v$locked_object l, dba_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
AND s.blocking_session is not null;
3.根據(jù)被阻塞會(huì)話查找原會(huì)話信息
SELECT l.session_id, o.owner, o.object_name, machine, s.sid, s.serial#,s.sid||','||s.serial# kill_session
FROM v$locked_object l, dba_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
AND s.sid = 759;
SELECT s.sid, s.serial#,s.sid||','||s.serial# kill_session FROM v$session s WHERE sid = 759;
4.殺死原會(huì)話
alter system kill session '759,18523';
二、PLSQL處理
原理與code處理一樣,先找到現(xiàn)有會(huì)話,然后反推阻塞會(huì)話,最后將其殺死
1.查詢被阻塞的會(huì)話,找到Blocking session
2.根據(jù)Blocking session查找原會(huì)話信息,直接點(diǎn)擊kill殺會(huì)話
首先你要知道表鎖住了是不是正常鎖?因?yàn)槿魏蜠ML語句都會(huì)對(duì)表加鎖。
你要先查一下是那個(gè)會(huì)話那個(gè)sql鎖住了表,有可能這是正常業(yè)務(wù)需求,不建議隨便KILL
session,如果這個(gè)鎖表是正常業(yè)務(wù)你把session
kill掉了會(huì)影響業(yè)務(wù)的。
建議先查原因再做決定。
(1)鎖表查詢的代碼有以下的形式:
select
count(*)
from
v$locked_object;
select
*
from
v$locked_object;
(2)查看哪個(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;
(3)查看是哪個(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;
(4)查看是哪個(gè)sql引起的
select
b.username,b.sid,b.serial#,c.*
from
v$locked_object
a,v$session
b,v$sql
c
where
a.session_id
=
b.sid
and
b.SQL_ID
=
c.sql_id
and
c.sql_id
=
''
order
by
b.logon_time;
(5)殺掉對(duì)應(yīng)進(jìn)程
執(zhí)行命令:alter
system
kill
session'1025,41';
其中1025為sid,41為serial#.
文章標(biāo)題:oracle阻塞怎么解決,oracle查詢阻塞
網(wǎng)站網(wǎng)址:http://www.yijiale78.com/article42/dschiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、品牌網(wǎng)站制作、網(wǎng)站導(dǎo)航、ChatGPT、網(wǎng)站內(nèi)鏈、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)