oracle 如何形成死鎖,Oracle數據表中的死鎖情況解決方法

在進行數據庫管理的過程中,經常會出現數據表被用戶的一些不合理操作而導致表被鎖定的情況,以下主要介紹如何查找哪些表被哪個用戶所鎖定,以及如何解除鎖定:

1.查找被鎖定的表:

select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status

from v$locked_object l, all_objects a

where l.object_id=a.object_id;

73bd0b7820d28394240400043cf50970.png

如果想知道具體是哪個進程阻塞了哪個進程,可用以下語句查看:

select username,v$lock.sid,trunc(id1/power(2,16)) rbs,bitand(id1,to_number('ffff','xxxx'))+0 slot,id2 seq,lmode,request from v$lock, v$session where v$lock.type = 'TX' and v$lock.sid = v$session.sid and v$session.username = 'CENTER' ;

select

(select username||':'||sid||':'||serial# from v$session where sid=a.sid) ||

' 阻塞了 ' ||

(select username ||':'||sid||':'||serial# from v$session where sid=b.sid)

from v$lock a, v$lock b

where a.block = 1

and b.request > 0

and a.id1 = b.id1

and a.id2 = b.id2;

127862f4d3eb5c206d46c64347b30138.png

2.確定鎖定表用戶的sid與serial編號(可通過oracle用戶確定也可通過系統用戶確定)

a.通過oracle用戶確定

select sid,serial# from v$session where username='center';

5b0f2f3247622022450e1615ad21743b.png

b.通過系統用戶確定

select sid,serial# from v$session where username='administrator';

b996825adfa39abdf8081cb3a66dc69c.png

3.殺掉造成死鎖的進程(已知是123阻塞了124號進程,殺掉即可解鎖)

alter system kill session ‘123,3935';

cc3174232672d00e77736df83290419b.png

b880dabebdbd3d869dc19a65477b2383.png

至此表死鎖解除,現在存在的是數據表正常的鎖定,等事務提交后自然消失.

oracle rac 死鎖檢測機制rac環境下,死鎖的檢查是通過LMD進程來完成的,該進行默認情況下是60s 工作一次,也就是說死鎖的檢查至少需要1分鐘甚至更長的時間,跟系統負載有關。

另外就是rac環境下,死鎖的檢測要在所有節點之間來回的通信,所以相對單機環境下,就要慢很多。其中隱含參數_lm_dd_interval 控制LMD工作的頻率(一般情況下,不要調整該參數)

如何避免死鎖?對應oracle內部死鎖,oracle自己會進行處理,但是由于應用方面導致的死鎖或人為導致的死鎖,那么需要進行人工干預。

Oracle死鎖產生的四個必要條件如下:

1)資源不能被共享,只能由一個進程使用。

2)已經得到資源的進程可以再次申請新的資源。

3)已經分配的資源不能從相應的進程中被強制地剝奪。

4)系統中若干進程組成環狀,環狀中每個進程都在等待相鄰進程正占用的資源。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529348.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529348.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529348.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 分布式數據庫查詢,分布式數據庫 · Thinkphp5.0完全開發手冊 · 看云

# 分布式數據庫ThinkPHP內置了分布式數據庫的支持,包括主從式數據庫的讀寫分離,但是分布式數據庫必須是相同的數據庫類型。配置database.deploy 為1 可以采用分布式數據庫支持。如果采用分布式數據庫,定義數據庫配置信息的方式如下&#xff1…

matlab 電力系統動態仿真,基于Matlab的電力系統動態仿真分析

本文通過兩個簡單實例介紹了利用 !"#$"% &’(! )*, -./對電力系統進行仿真研究的方法! 包括"熱工自動調節控制系統的仿真分析和電力電器系統的仿真分析# 0 熱工調節控制系統仿真分析 對熱工調節控制系統的性能分析包括靜態特性和動態特性兩個方面# 這里主要…

oracle read by other session,AWR報告中,read by other session ,如何解決?

你看你的top sql里全是動態采樣的sql,默認10g以后optimizer_dynamic_sampling參數為level 2,一般為缺失統計信息會造成每次使用動態采樣,雖然動態采樣會在表頻繁發生大批量改變時,一般可以生成更好的執行計劃,但是也不…

oracle insert into as select,比較create table as select * 與 insert into table select *

實驗環境:SYSaaron> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE …

unix 安裝oracle,linux上安裝Oracle

當前位置:我的異常網 Linux/Unix linux上安裝Oraclelinux上安裝Oraclewww.myexceptions.net 網友分享于:2013-09-03 瀏覽:26次linux下安裝Oracle1.Linux下安裝 jdk(Linux)建議從sun的主頁上下載bin文件,運行后在/usr/會建立好java目錄的Linux下相關命…

linux ftp用戶指定多個目錄,linux ftp服務器下用戶限制目錄的方法

我們使用服務器都要站在安全方面進行考慮,有必要將ftp服務下的用戶限制在適當的范圍內,那么linux ftp服務器下用戶限制目錄的方法有哪些呢?一起跟著愛站技術頻道小編的步伐來了解一下吧!linux ftp服務器下用戶只能在自己目錄下的方法:第一步…

查找空目錄Linux,Linux中find批量刪除空文件及空文件夾腳本

find . -name "*" -type f -size 0c | xargs -n 1 rm -f #linux下批量刪除空文件(大小等于0的文件)刪除指定大小的文件,只要修改對應的 -size 參數就行:find . -name "*" -type f -size 1024c | xargs -n 1 rm -f #刪除1k大小的文件…

linux關閉timewait端口,linux 如何強制關閉 time_wait 連接

匿名用戶1級2016-04-16 回答# netstat -an|awk /tcp/ {print $6}|sort|uniq -c68 CLOSE_WAIT2 CLOSING136 ESTABLISHED38 FIN_WAIT116 FIN_WAIT22 LAST_ACK8 LISTEN71 SYN_RECV2936 TIME_WAIT#狀態:描述CLOSED:無連接是活動的或正在進行LISTEN&#xff1…

memset頭文件 linux,error: ‘memset’ was not declared in this scope

http://blog.sina.com.cn/s/blog_79d599dc0100r2vz.html昨天一同事把代碼準備重新全新布置到新的環境上去的時候,代碼報錯了,先開始報錯如下:error: ‘memset’ was not declared in this scopeerror: ‘strcat’ was not declared in this s…

linux中ls文件內存大小,Linux下用ls和du命令查看文件以及文件夾大小

webdriver零碎知識點#零碎知識點,用于記錄平時遇到的比較雜的知識點 driver.current_url 獲取當前url phantomjs 實現無瀏覽器界面自動化測試(driver webdriver.Phanto ...ORACLE刪除當前用戶下所有的表的方法1.如果有刪除用戶的權限,則可以: drop user user_name cascade; 加…

linux物理內存地址與iomem,一種Linux系統物理內存鏡像文件分析方法_4

模塊信息,如圖7所示,給出了本發明的實施例中 模塊結構關系圖,modules變量指向某一個已加載模塊結構體module地址,所有已加載模 塊其module形成一個雙向鏈表,如圖7所示,據此可以獲取到所有已加載模塊。[0099…

linux設備分層優點,Linux設備驅動的分層設計思想

代碼清單8第2行獲取platform_data,而platform_data實際上是定義GPIO按鍵硬件信息的數組,第31行的for循環工具這些信息申請GPIO并初始化中斷,對于LDD6140電路板而言,這些信息如代碼清單10。代碼清單10 LDD6410開發板GPIO按鍵的plat…

linux 關閉桌面環境,Ubuntu 14.04上的Cinnamon桌面環境PPA被關閉

今天Cinnamon桌面環境的開發者宣布關閉Cinnamon桌面環境的PPA,這意味著以后在Ubuntu上安裝Cinnamon桌面環境將變得很難。關于為什么要關閉PPA,Cinnamon PPA的維護者Gwendal Le Bihan做出了以下解釋:“穩定的Cinnamon PPA將不再提供&#xff0…

linux sd卡讀寫出錯,linux系統SD卡讀寫問題

請教有過linux系統SD卡讀寫經驗的前輩。我的項目是對FPGA上的SD卡部分做測試,在測試過程中發現在對SD卡所有領域進行讀寫操作時1、bus width 選擇1-bit的速度4-bit是差不多的,這與我預想的不同,想知道問題出在哪里?(理論上4bit 速度應該是1-…

genymotion linux 32,Ubuntu Linux 32bit - 不是Genymotion虛擬設備

因為4天我沒有找到解決方案我的genymotion有問題 我正在使用Ubuntu 12.04 32位(architecure:i686)并安裝android studio并將genymotion的插件放入其中succefully ......現在我的問題,當點擊genymotion設備管理器,列表是空的,當我試…

grub linux rootfs,rootfs文件系統(筆記)(草稿)

文件系統簡介文件系統就是個軟件,幫用戶來管理一些二進制的信息,管理外存上存儲的這些二進制各種文件在內存中都是以二進制的形式來存在的,如果沒有文件系統,用戶就需要自己去決定這些二進制的東西是什么,需要自己去和…

linux 如何查看屬性,linux?下查看系統屬性

linux 下查看系統屬性(2009-06-28 19:01:34)標簽:linux雜談分類:OSlinux下查看系統屬性1、查看cpu信息查看所有cpu信息:cat /proc/cpuinfo查看cpu類型: grep "model name" /proc/cpuinfo2、查看內存信息:查看…

幼兒學數數的c語言程序,【資源學習】c語言程序代碼,登錄幼兒園200個小朋友的數據...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓編寫程序,登錄幼兒園200個小朋友的數據:姓名、性別、年齡、身高、體重、出生日期,分別按年齡排序后輸出。要求:(1)登錄數據用函數input()(2)按身高排序用函數sort()(3)輸出排序結果用…

c語言傳入參數不正確,請高手看看一下程序怎么回事啊?老是提示傳參數錯誤...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#includevoid main(){ void average(float, int);void search(float,int);static float score[][4]{{65,67,70,60},{80,87,90,81},{99,90,100,98}};average(score,12);search(score,2);}void average(float *p,int n){float *p_end…

vs用c語言寫貪吃蛇,熬書幾個月,終于編出簡易的貪吃蛇了,VS2013

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓#include#include#include#include#define X 30#define Y 15void guozi(int *x, int *y);int main(void){char map[X][Y];int x;int y;//橫縱坐標int i;int j;//標記蛇頭int p, q;//標記蛇尾int t, d;//尋找蛇尾int n 4;//蛇的長度…