簡(jiǎn)露一手-一次大型業(yè)務(wù)系統(tǒng)的突發(fā)故障-有必要知道一點(diǎn)點(diǎn)Oracle鎖故障精簡(jiǎn)處理舶胀。

復(fù)雜的故事簡(jiǎn)單說(shuō),復(fù)雜的問(wèn)題簡(jiǎn)單做碧注,您好嚣伐,這里是簡(jiǎn)露一手,歡迎瀏覽萍丐。

簡(jiǎn)述


16-7月轩端,一大型在線(xiàn)業(yè)務(wù)系統(tǒng)服務(wù)器突然一個(gè)個(gè)掛掉,重啟后不到撐不到五分鐘就犧牲逝变,導(dǎo)致生產(chǎn)系統(tǒng)業(yè)務(wù)故障基茵。

oracle鎖

定位


因所有應(yīng)用都有問(wèn)題,且在未發(fā)布版本情況下突然發(fā)生壳影,預(yù)備進(jìn)行三個(gè)步驟排查定位拱层。

  • 檢查數(shù)據(jù)庫(kù)情況.
  • 檢查服務(wù)器日志.
  • 檢查服務(wù)器網(wǎng)絡(luò)情況.

數(shù)據(jù)庫(kù)情況

這里不說(shuō)其它的檢查項(xiàng),直奔這次事因:“數(shù)據(jù)庫(kù)鎖”宴咧。

根據(jù)經(jīng)驗(yàn)根灯,我們進(jìn)行了數(shù)據(jù)庫(kù)的檢查,幸運(yùn)的是直接找到了問(wèn)題點(diǎn)。
有一個(gè)業(yè)務(wù)表鎖的數(shù)量超過(guò)100烙肺,根據(jù)sql_id找出了所有sql芥驳,發(fā)現(xiàn)了全表鎖和鎖全表語(yǔ)句,是一條更新全表的update語(yǔ)句茬高。

查詢(xún)鎖:
select object_name as 對(duì)象名稱(chēng),s.sid,s.serial#,p.spid as 系統(tǒng)進(jìn)程號(hào),s.SQL_ID from v$locked_object l , dba_objects o , v$session s , v$process p where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
查詢(xún)鎖表的語(yǔ)句:
select * from v$sql where sql_id='65gmqgahz6jp8'

處理


鎖一旦出現(xiàn) 兆旬,最簡(jiǎn)單的辦思路就是殺[kill]。
kill 分兩種:

  • oracle 命令kill
    ALTER SYSTEM KILL SESSION 'sid,serial#';
  • 后臺(tái)殺oracle語(yǔ)句kill
    kill -9 spid

<small>sid,serial#,spid 取值于 查詢(xún)鎖查詢(xún)結(jié)果怎栽。

開(kāi)始?xì)?/h3>

首殺

使用[oracle 命令]kill后 新的鎖又多了起來(lái)丽猬,改用[后臺(tái)殺]kill后,新的鎖仍在繼續(xù)熏瞄。

再查

分析鎖全部的update語(yǔ)句會(huì)話(huà)是oracle自己產(chǎn)生的脚祟,來(lái)源于存儲(chǔ)過(guò)程的概率比較大,在排查存儲(chǔ)過(guò)程中找到了它强饮,并根據(jù)它找到了一個(gè)job由桌,是job的重復(fù)執(zhí)行 導(dǎo)致了全表鎖的不斷產(chǎn)生。

二殺

刪除job后重新kill,第二次殺進(jìn)程后,情況并沒(méi)有好轉(zhuǎn),沒(méi)有了全表鎖邮丰,但是行鎖仍然多行您,問(wèn)題變得更為復(fù)雜。

再查

經(jīng)過(guò)漫長(zhǎng)的分析百種嘗試剪廉,最終找到來(lái)問(wèn)題.這是一個(gè)大意遺漏的點(diǎn)娃循。生產(chǎn)機(jī)器一般做了rac,有多個(gè)實(shí)例斗蒋,通過(guò)tns連接過(guò)去的會(huì)話(huà)一直在一個(gè)實(shí)例上捌斧,查看鎖情況始終只查看了一個(gè)實(shí)例的鎖情況,而oracle的job執(zhí)行 在兩個(gè)實(shí)例上都有可能存在泉沾。修改tns地址為第二個(gè)實(shí)例后捞蚂,在第二個(gè)實(shí)例上找到了好幾個(gè)全表鎖的進(jìn)程。

三殺

登陸到第二個(gè)實(shí)例上跷究,kill掉鎖的進(jìn)程后1分鐘不到姓迅,所有的鎖都降下去了,重啟應(yīng)用揭朝,恢復(fù)正常队贱。

總結(jié)

事情錯(cuò)綜,所以總結(jié)一下為兩點(diǎn)來(lái)將整體內(nèi)容再簡(jiǎn)化一下潭袱。

  • 因: 生產(chǎn)業(yè)務(wù)表在業(yè)務(wù)繁忙期間執(zhí)行了全表更新語(yǔ)句柱嫌,與應(yīng)用上更新單條記錄的進(jìn)程形成循環(huán)鎖、阻塞屯换,導(dǎo)致整體應(yīng)用和數(shù)據(jù)庫(kù)問(wèn)題编丘。所以与学,生產(chǎn)業(yè)務(wù)表在業(yè)務(wù)繁忙期間應(yīng)禁止執(zhí)行全表更新語(yǔ)句。碰到必須在業(yè)務(wù)期間全表執(zhí)行則需采用分批更新和提交,來(lái)減小沖突的產(chǎn)生概率嘉抓,這里說(shuō)的全表更新包括更新語(yǔ)句沒(méi)有where條件和where條件的結(jié)果有大量數(shù)據(jù)的兩種情況索守。
  • 果: 找出所有鎖,殺掉所有鎖抑片。需要注意的是:Job會(huì)不停產(chǎn)生更新任務(wù)卵佛。生產(chǎn)環(huán)境一般都做了rac,需檢查數(shù)據(jù)庫(kù)的多個(gè)實(shí)例,都進(jìn)行kill敞斋。

實(shí)際上這次事故處理時(shí)間有點(diǎn)長(zhǎng)截汪,中間停起應(yīng)用、分析日志這些都有做植捎,還有遷移接口衙解、排查代碼這些,處理的內(nèi)容也相當(dāng)多焰枢。回想起來(lái)做的事情就一項(xiàng)是有用的:找到所有鎖蚓峦,然后kill

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末济锄,一起剝皮案震驚了整個(gè)濱河市暑椰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拟淮,老刑警劉巖干茉,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異很泊,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)沾谓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)委造,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人均驶,你說(shuō)我怎么就攤上這事昏兆。” “怎么了妇穴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵爬虱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我腾它,道長(zhǎng)跑筝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任瞒滴,我火速辦了婚禮曲梗,結(jié)果婚禮上赞警,老公的妹妹穿的比我還像新娘。我一直安慰自己虏两,他們只是感情好愧旦,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著定罢,像睡著了一般笤虫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祖凫,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天琼蚯,我揣著相機(jī)與錄音,去河邊找鬼蝙场。 笑死凌停,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的售滤。 我是一名探鬼主播罚拟,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼完箩!你這毒婦竟也來(lái)了赐俗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弊知,失蹤者是張志新(化名)和其女友劉穎阻逮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體秩彤,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叔扼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漫雷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓜富。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖降盹,靈堂內(nèi)的尸體忽然破棺而出与柑,到底是詐尸還是另有隱情,我是刑警寧澤蓄坏,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布价捧,位于F島的核電站,受9級(jí)特大地震影響涡戳,放射性物質(zhì)發(fā)生泄漏结蟋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一妹蔽、第九天 我趴在偏房一處隱蔽的房頂上張望椎眯。 院中可真熱鬧挠将,春花似錦、人聲如沸编整。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掌测。三九已至内贮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汞斧,已是汗流浹背夜郁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粘勒,地道東北人竞端。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像庙睡,于是被迫代替她去往敵國(guó)和親事富。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容