国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

?分布式事務鎖介紹及一般處理方法

IT那活兒 / 1193人閱讀
?分布式事務鎖介紹及一般處理方法

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!


目的

通過建立知識庫管理,積累、保存信息和知識資產,為團隊內部信息和知識的傳播提供平臺,實現團隊內知識共享,也使得企業知識得到很好的精煉和沉淀。


知識點描述

分布式事務,簡單來說,是指一個事務在本地和遠程執行,本地需要等待確認遠程的事務結束后,進行下一步本地的操作。如通過dblink update遠程數據庫的一行記錄,如果在執行過程中網絡異常,或者其他事件導致本地數據庫無法得知遠程數據庫的執行情況,此時就會發生in doublt的報錯。
當前的分布式事務處于Two-Phase Commit機制中的prepared階段,這個階段事務已經在表上加鎖了,現在我們要訪問這些表,但事務沒有結束,一直持有鎖,導致訪問資源失敗報ORA-01591。分布式事務所持有的鎖之所以堵塞讀操作,是因為oralce不知道該顯示哪個版本的數據。當一個分布式事務死掉時,由于該事務沒有正常結束,導致事務持有的鎖一直沒有釋放,所以在訪問這個事務涉及的資源時,申請不到鎖資源,所以報ORA-01591。

ORA-01591錯誤一般是由于分布式事務造成的,造成分布式事務失敗的原因可能是庫之間的網絡突然中斷或者更新操作窗口會話被斷開,造成兩個庫中的事務信息不一致,導致有殘余的分布式事務信息未被釋放。


標準指導操作

3.1 分布式事務兩階段提交
兩階段提交協議可以保證數據的強一致性,許多分布式關系型數據管理系統采用此協議來完成分布式事務。
它是協調所有分布式原子事務參與者,并決定提交或取消(回滾)的分布式算法。同時也是解決一致性問題的算法。該算法能夠解決很多的臨時性系統故障(包括進程、網絡節點、通信等故障),被廣泛地使用。但是,它并不能夠通過配置來解決所有的故障,在某些情況下它還需要人為的參與才能解決問題。
兩階段提交分為Prepare Phase (準備階段)和Commit Phase (提交階段)
1)準備階段
協調者向參與者發起指令,參與者評估自己的狀態,如果參與者評估指令可以完成,則會寫redo或者undo日志(Write-Ahead Log的一種),然后鎖定資源,執行操作,但是并不提交。
2)提交階段
如果每個參與者明確返回準備成功,也就是預留資源和執行操作成功,則協調者向參與者發起提交指令,參與者提交資源變更的事務,釋放鎖定的資源;如果任何一個參與者明確返回準備失敗,也就是預留資源或者執行操作失敗,則協調者向參與者發起中止指令,參與者取消已經變更的事務,執行undo日志,釋放鎖定的資源。
3.2 存在的問題
兩階段提交協議在準備階段鎖定資源,這是一個非常損耗資源的操作,能保證強一致性,但是實現起來復雜、成本較高、不夠靈活,更重要的是它有一些致命的問題。
1)阻塞
從上面的描述來看,對于任何一次指令都必須收到明確的響應,才會繼續進行下一步,否則處于阻塞狀態,占用的資源被一直鎖定,不會被釋放。
2)單點故障
如果協調者宕機,參與者沒有協調者指揮,則會一直阻塞,盡管可以通過選舉新的協調者替代原有協調者,但是如果協調者在發送一個提交指令后宕機,而提交指令僅僅被一個參與者接收,并且參與者接收后也宕機,則新上任的協調者無法處理這種情況。
3)腦裂
協調者發送提交指令,有的參與者接收到并執行了事務,有的參與者沒有接收到事務就沒有執行事務,多個參與者之間是不一致的。
4)數據狀態不確定
協調者再發出commit消息之后丟失,而唯一接收到這條消息的參與者同時也丟失了。那么即使協調者通過選舉協議產生了新的協調者,這條事務的狀態也是不確定的,沒人知道事務是否被已經提交。
3.3 一般解決方法
對于分布式事務鎖一般性解決方法為對事務進行回滾使兩者數據庫回到正常狀態;Rollback force的參數是DBA_2PC_PENDING中記錄本地事務信息的編號即LOCAL_TRAN_ID。語法命令:Rollback force ‘20.13.1546896’


本文作者:陳炎亮(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129158.html

相關文章

  • 為Java程序員金三銀四精心挑選的300余道Java面試題與答案

    摘要:為程序員金三銀四精心挑選的余道面試題與答案,歡迎大家向我推薦你在面試過程中遇到的問題我會把大家推薦的問題添加到下面的常用面試題清單中供大家參考。 為Java程序員金三銀四精心挑選的300余道Java面試題與答案,歡迎大家向我推薦你在面試過程中遇到的問題,我會把大家推薦的問題添加到下面的常用面試題清單中供大家參考。 前兩天寫的以下博客,大家比較認可,熱度不錯,希望可以幫到準備或者正在參加...

    tomorrowwu 評論0 收藏0
  • TiDB 在轉轉的業務實戰

    摘要:而批處理,可以復用一條簡單,實現批量數據的寫入或更新,為系統帶來更低更穩定的耗時。批處理的簡要流程說明如下經業務中實踐,使用批處理方式的寫入或更新,比常規或性能更穩定,耗時也更低。 作者:陳維,轉轉優品技術部 RD。 開篇 世界級的開源分布式數據庫 TiDB 自 2016 年 12 月正式發布第一個版本以來,業內諸多公司逐步引入使用,并取得廣泛認可。 對于互聯網公司,數據存儲的重要性不...

    hover_lew 評論0 收藏0
  • 【推薦】最新200篇:技術文章整理

    摘要:作為面試官,我是如何甄別應聘者的包裝程度語言和等其他語言的對比分析和主從復制的原理詳解和持久化的原理是什么面試中經常被問到的持久化與恢復實現故障恢復自動化詳解哨兵技術查漏補缺最易錯過的技術要點大掃盲意外宕機不難解決,但你真的懂數據恢復嗎每秒 作為面試官,我是如何甄別應聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復制的原理詳...

    BicycleWarrior 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<