如何結束oracle進程 oracle系統(tǒng)進程

如何殺死oracle死鎖進程

oracle死鎖時殺進程的方法:

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供武穴網(wǎng)站建設、武穴做網(wǎng)站、武穴網(wǎng)站設計、武穴網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、武穴企業(yè)網(wǎng)站模板建站服務,10年武穴做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

第一步:嘗試在sqlplus中通過sql命令進行刪除,如果能夠刪除成功,則萬事大吉。但通常情況下,出現(xiàn)死鎖時,想通過命令行或者通過oracle的管理工具刪除有死鎖的session,oracle只會將該session標記為killed,但無法清除掉,往往需要通過第二步在操作系統(tǒng)層級進行刪除。

第二步:

1、select xidusn, object_id, session_id, locked_mode from v$locked_object; --查死鎖的對象,獲取其SESSION_ID。

2、select username,sid,serial# from v$session where sid=29; --根據(jù)上步獲取到的sid查看其serial#號。

3、alter system kill session '29,57107'; --刪除進程,如已經(jīng)刪除過,則會報ora-00031的錯誤;否則oracle會將該session標記為killed狀態(tài),等待一段時間看能否會自動消失,如長時間消失不掉,則需要做后續(xù)步驟。

一些ORACLE中的進程被殺掉后,狀態(tài)被置為"killed",但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟數(shù)據(jù)庫?,F(xiàn)在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級再殺。

oracle進程數(shù)越來越多怎么辦?

進程數(shù)越來越多的原因比較多。例如:客戶端增多、一個客戶端打開多個任務、失敗進程增多、應用程序沒能正常結束等等。對于客戶端的增多和多開任務是人為的比較好控制,而應用程序不能正常退出可以調(diào)整應用程序即可。問題失敗進程,它是屬于系統(tǒng)問題,與服務器的連接模式和網(wǎng)絡通訊穩(wěn)定性直接相關。

Oracle的后臺進程PMON進程監(jiān)控進程是專門清理死進程的。它定期被喚醒進行清理死進程,但出現(xiàn)的死進程過多來不及清理,那么進程數(shù)就會不斷地增多最后可能出現(xiàn)客戶端無法登入的現(xiàn)象了。

Oracle服務器目前主要采用兩種連接方式:專用方式DEDICATED和共享方式SHARED。專用方式是每一個客戶端的用戶進程對應一個服務器進程為其服務,即使該服務器進程失敗變成死進程了也不會影響其他用戶的請求。而共享連接方式下,一個服務器進程為很多個客戶的用戶進程服務的,它是按照隊列一個一個進行處理的,當?shù)谝粋€用戶進程結束之前后面用戶進程需要進行等待。

Oracle進程刪除不掉怎么辦?

方法/步驟

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.殺死進程:

alter system kill session '137,233'; (其中137,223分別是上面查詢出的sid,serial#)

PS.以上兩步,可通過Oracle的管理控制臺來執(zhí)行。

如果利用上面的方法殺死進程后,進程狀態(tài)雖被置為"killed",但是鎖定的資源很長時間沒有被釋放,那么可以在OS一級再殺死相應的進程(線程)

1.首先獲得進程(線程)號:

select spid, osuser, s.program

from v$session s,v$process p

where s.paddr=p.addr and s.sid=137 (137是上面的sid)

2.在OS上殺死這個進程(線程):

1)在unix上,用root身份執(zhí)行命令:

#kill -9 12345(即上面查詢出的spid)

2)在windows(unix也適用)用orakill殺死線程,例:c:orakill orcl 12345

orakill是oracle提供的一個可執(zhí)行命令,語法為:orakill sid thread

其中:

sid:表示要殺死的進程屬于的實例名

thread:是要殺掉的線程號,即上面查詢出的spid。

如何有效殺掉在linux環(huán)境下的oracle進程

1.第一步:使用Linux的kill命令殺死所有與oracle有關的進程。 1)查詢到與ORACLE_SID相關的oracle進程 $ ps -ef |grep $ORACLE_SID oracle 7776 1 0 22:51 ? 00:00:00 ora_pmon_ora10g oracle 7778 1 0 22:51 ? 00:00:00 ora_psp0_ora10g oracle...

本文題目:如何結束oracle進程 oracle系統(tǒng)進程
網(wǎng)址分享:http://muchs.cn/article42/hjccec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站建設服務器托管、網(wǎng)站設計公司域名注冊、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計