成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分布式事務(wù)鎖特殊情況強(qiáng)制處理方法

IT那活兒 / 1859人閱讀
分布式事務(wù)鎖特殊情況強(qiáng)制處理方法

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!


目的

通過(guò)建立知識(shí)庫(kù)管理,積累、保存信息和知識(shí)資產(chǎn),為團(tuán)隊(duì)內(nèi)部信息和知識(shí)的傳播提供平臺(tái),實(shí)現(xiàn)團(tuán)隊(duì)內(nèi)知識(shí)共享,也使得企業(yè)知識(shí)得到很好的精煉和沉淀。


知識(shí)點(diǎn)描述

分布式事務(wù)及分布式事務(wù)鎖介紹:
分布式事務(wù),簡(jiǎn)單來(lái)說(shuō),是指一個(gè)事務(wù)在本地和遠(yuǎn)程執(zhí)行,本地需要等待確認(rèn)遠(yuǎn)程的事務(wù)結(jié)束后,進(jìn)行下一步本地的操作。如通過(guò)dblink update遠(yuǎn)程數(shù)據(jù)庫(kù)的一行記錄,如果在執(zhí)行過(guò)程中網(wǎng)絡(luò)異常,或者其他事件導(dǎo)致本地?cái)?shù)據(jù)庫(kù)無(wú)法得知遠(yuǎn)程數(shù)據(jù)庫(kù)的執(zhí)行情況,此時(shí)就會(huì)發(fā)生in doublt的報(bào)錯(cuò)。
當(dāng)前的分布式事務(wù)處于Two-Phase Commit機(jī)制中的prepared階段,這個(gè)階段事務(wù)已經(jīng)在表上加鎖了,現(xiàn)在我們要訪問(wèn)這些表,但事務(wù)沒(méi)有結(jié)束,一直持有鎖,導(dǎo)致訪問(wèn)資源失敗報(bào)ORA-01591。
分布式事務(wù)所持有的鎖之所以堵塞讀操作,是因?yàn)閛ralce不知道該顯示哪個(gè)版本的數(shù)據(jù)。當(dāng)一個(gè)分布式事務(wù)死掉時(shí),由于該事務(wù)沒(méi)有正常結(jié)束,導(dǎo)致事務(wù)持有的鎖一直沒(méi)有釋放,所以在訪問(wèn)這個(gè)事務(wù)涉及的資源時(shí),申請(qǐng)不到鎖資源,所以報(bào)ORA-01591。
ORA-01591錯(cuò)誤一般是由于分布式事務(wù)造成的,造成分布式事務(wù)失敗的原因可能是庫(kù)之間的網(wǎng)絡(luò)突然中斷或者更新操作窗口會(huì)話被斷開(kāi),造成兩個(gè)庫(kù)中的事務(wù)信息不一致,導(dǎo)致有殘余的分布式事務(wù)信息未被釋放。
任何事務(wù)都有特殊情況,分布式事務(wù)鎖的一般性解決方案是直接進(jìn)行回滾,或等待網(wǎng)絡(luò)自動(dòng)連接后數(shù)據(jù)庫(kù)自動(dòng)調(diào)配解決;

特殊情況下當(dāng)強(qiáng)制回滾無(wú)法相應(yīng)時(shí),還有兩個(gè)備用操作可以解決——重啟數(shù)據(jù)庫(kù)與修改數(shù)據(jù)庫(kù)基表數(shù)據(jù)。但后者修改基表的風(fēng)險(xiǎn)是比較大的,慎用?。。?/strong>


標(biāo)準(zhǔn)指導(dǎo)操作

3.1 重啟數(shù)據(jù)庫(kù)自動(dòng)解決
風(fēng)險(xiǎn):對(duì)于業(yè)務(wù)數(shù)據(jù)庫(kù)來(lái)說(shuō),重啟之后如果其上的業(yè)務(wù)無(wú)法自動(dòng)轉(zhuǎn)移到另一個(gè)集群節(jié)點(diǎn)上,那么會(huì)對(duì)業(yè)務(wù)運(yùn)行造成影響,更進(jìn)一步的,會(huì)對(duì)其他與之關(guān)聯(lián)的數(shù)據(jù)庫(kù)業(yè)務(wù)也造成影響。
因此這種風(fēng)險(xiǎn)的重點(diǎn)在于風(fēng)險(xiǎn)擴(kuò)散。
3.2 修改數(shù)據(jù)庫(kù)基表
1)分布式事務(wù)原理
兩階段提交協(xié)議可以保證數(shù)據(jù)的強(qiáng)一致性,許多分布式關(guān)系型數(shù)據(jù)管理系統(tǒng)采用此協(xié)議來(lái)完成分布式事務(wù)。它是協(xié)調(diào)所有分布式原子事務(wù)參與者,并決定提交或取消(回滾)的分布式算法。同時(shí)也是解決一致性問(wèn)題的算法。該算法能夠解決很多的臨時(shí)性系統(tǒng)故障(包括進(jìn)程、網(wǎng)絡(luò)節(jié)點(diǎn)、通信等故障),被廣泛地使用。但是,它并不能夠通過(guò)配置來(lái)解決所有的故障,在某些情況下它還需要人為的參與才能解決問(wèn)題。兩階段提交分為Prepare Phase (準(zhǔn)備階段)和Commit Phase (提交階段)。
2)修改基表原理
對(duì)數(shù)據(jù)庫(kù)基表pending_trans$和pending_sessions$錄入分布式事務(wù)的相關(guān)數(shù)據(jù),提交數(shù)據(jù)后對(duì)該事務(wù)也進(jìn)行提交,偽造該分布式事務(wù)已經(jīng)完成的記錄,從而使得該鎖能夠成功釋放。
3)風(fēng)險(xiǎn):官方一般不建議修改數(shù)據(jù)庫(kù)基表信息,基表屬于oracle后端表,修改基表相當(dāng)于數(shù)據(jù)欺騙,人為干預(yù)本該數(shù)據(jù)庫(kù)可以自動(dòng)完成的過(guò)程,可能導(dǎo)致數(shù)據(jù)不一致,數(shù)據(jù)混亂,或者基表數(shù)據(jù)異常進(jìn)而影響其他事務(wù)執(zhí)行。慎用??!
4)修改方法
*對(duì)基表pending_trans$和pending_sessions$手動(dòng)錄入事務(wù)3128.22.4729750的數(shù)據(jù)。
*數(shù)據(jù)錄入完成后對(duì)表數(shù)據(jù)提交,同時(shí)對(duì)該事務(wù)進(jìn)行強(qiáng)制commit,偽造成該事務(wù)已完成的記錄。提交完成后該分布式事務(wù)鎖便可解開(kāi)。
*由于該事務(wù)的執(zhí)行記錄是偽造的,因此還需清除本地?cái)?shù)據(jù)庫(kù)所記載的遠(yuǎn)程事務(wù)入口,該事務(wù)入口操作因?yàn)檫h(yuǎn)程數(shù)據(jù)庫(kù)問(wèn)題未能在遠(yuǎn)程數(shù)據(jù)庫(kù)完成。即在事務(wù)鎖解開(kāi)后清除該條偽造的事務(wù)數(shù)據(jù)記錄。完成后便可正常對(duì)表進(jìn)行操作。


本文作者:陳炎亮(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129154.html

相關(guān)文章

  • Redis 布式--PHP

    摘要:分布式鎖的作用在單機(jī)環(huán)境下,有個(gè)秒殺商品的活動(dòng),在短時(shí)間內(nèi),服務(wù)器壓力和流量會(huì)陡然上升。分布式集群業(yè)務(wù)業(yè)務(wù)場(chǎng)景下,每臺(tái)服務(wù)器是獨(dú)立存在的。這里就用到了分布式鎖這里簡(jiǎn)單介紹一下,以的事務(wù)機(jī)制來(lái)延生。 Redis 分布式鎖的作用 在單機(jī)環(huán)境下,有個(gè)秒殺商品的活動(dòng),在短時(shí)間內(nèi),服務(wù)器壓力和流量會(huì)陡然上升。這個(gè)就會(huì)存在并發(fā)的問(wèn)題。想要解決并發(fā)需要解決以下問(wèn)題 1、提高系統(tǒng)吞吐率也就是qps 每...

    canger 評(píng)論0 收藏0
  • 關(guān)系型數(shù)據(jù)庫(kù)中的事務(wù)管理詳解:并發(fā)控制與事務(wù)日志

    摘要:關(guān)系型數(shù)據(jù)庫(kù)中的事務(wù)管理詳解并發(fā)控制與事務(wù)日志數(shù)據(jù)庫(kù)系統(tǒng)的萌芽出現(xiàn)于年代。并發(fā)控制并發(fā)控制旨在針對(duì)數(shù)據(jù)庫(kù)中對(duì)事務(wù)并行的場(chǎng)景,保證中的一致性與隔離性。絕大部分?jǐn)?shù)據(jù)庫(kù)會(huì)采用鎖或者數(shù)據(jù)版本控制的方式來(lái)處理并發(fā)控制問(wèn)題。 本文節(jié)選自:關(guān)系型數(shù)據(jù)庫(kù)理論 https://url.wx-coder.cn/DJNQn ,涉及引用/整理的文章列舉在了 Database-List。 showImg(htt...

    Pink 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<