亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL數據庫事務出現未知狀態的處理方法

2020-03-12 23:45:56
字體:
來源:轉載
供稿:網友

背景

數據庫的事務是原子操作,要么成功,要么失敗。但是實際上在客戶端的視角,可能有第三種狀態:unknown狀態。

當客戶端提交事務結束(rollback , commit , prepare xact , rollback pxact , commit pxact)的請求后,數據庫收到請求,數據庫可能執行失敗,也可能執行成功,不管怎樣都要寫對于的WAL日志,還有CLOG,然后數據庫要將執行結果返回給客戶端ACK。

這里存在幾種可能,導致客戶端不知道執行到底怎么樣了?

收到客戶端請求后,數據庫沒有返回任何ACK給客戶端,客戶端對這次請求很茫然,它只能人為數據庫處于UNKNOWN的狀態。

UNKNOWN 事務的處理

unknown事務,就是客戶端沒有收到commit/rollback ACK的事務。不知道是成功還是失敗。

多節點(quorum based sync replication)與單節點都可能出現UNKNOWN事務,效果、形態一致。

如何處理unknown事務呢?

unknown事務分為以下幾種情況.

rollback , commit , prepare xact , rollback pxact , commit pxact 幾種情況的unknown處理方法:

1、兩階段解決unknown狀態問題

prepare 階段unknown, 切換leader后,客戶端通過pg_prepared_xacts視圖檢查prepare xact狀態,如果沒有prepare xact則說明失敗了,那么整個事務重新發起即可。如果prepare xact存在,說明prepare xact成功了。

commit or rollback prepare xact階段unknown, 切換后檢查prepare xact狀態,存在則重試commit or rollback prepare xact。不存在則說明已經成功(我們認為2PC是一定成功的),無須處理。

2、非兩階段事務,rollback unknown無須處理,rollback失敗或成功對于客戶端來說結果是一樣的。因為不管怎樣都會回滾掉,這是數據庫原子性保障的。

3、非兩階段事務,commit unknown處理,極度嚴謹的場景,程序可以設計事務狀態可回溯,例如:

事務開始時,記錄事務號或唯一流水號,事務號在數據庫中是一個唯一的流水,可以根據事務號查詢它的狀態,比如postgresql。

但是并不是所有數據庫都有這種接口,比如非物理流式復制的數據庫,則可以在事務中增加全局唯一流水號來查看事務是否提交。這里利用了事務的原子特性,既要么全成功要么全失敗??梢耘e個使用例子。

使用業務流水實現事務狀態判斷的例子:

begin; 
生成唯一業務流水ID, 寫入到某個流水表,同時在程序或其他數據庫中記錄這個流水號,備查。 
執行事務 
提交事務; 
 
-- 出現unknown 
 
通過唯一業務流水ID,查詢數據庫中是否存在這條記錄。 
如果不存在,說明事務提交失敗。 
如果存在,說明事務提交成功。(因為數據庫的事務是原子操作) 


注:相關教程知識閱讀請移步到PostgreSQL頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩av在线| 日韩精品电影网| 久久91亚洲人成电影网站| 精品视频在线播放色网色视频| 欧美亚洲第一区| 91精品国产91久久久久福利| 国产精国产精品| 激情懂色av一区av二区av| 亚洲综合中文字幕在线观看| 中文字幕欧美国内| 岛国精品视频在线播放| 欧美日本啪啪无遮挡网站| 日本精品一区二区三区在线播放视频| 日本一区二区三区在线播放| 欧美黑人狂野猛交老妇| 最近2019好看的中文字幕免费| 黄色91在线观看| 亚洲精品在线看| 浅井舞香一区二区| 精品成人乱色一区二区| 国产精品极品尤物在线观看| 精品国产精品自拍| 久久夜色撩人精品| 日韩国产中文字幕| 亚洲精品国产美女| 久久久久免费视频| 亚洲午夜性刺激影院| 国产不卡av在线免费观看| 亚洲精品综合久久中文字幕| 国产一区av在线| 亚洲欧洲一区二区三区在线观看| 成人在线视频网| 久久久国产精品视频| 9.1国产丝袜在线观看| 久久久久久久电影一区| 久久九九亚洲综合| 热re91久久精品国99热蜜臀| 亚洲欧美资源在线| 日韩av影视在线| 欧美另类69精品久久久久9999| 亚洲最大福利视频网| 久久久国产一区| 中文字幕亚洲综合久久筱田步美| 欧美精品制服第一页| 亚洲精品欧美日韩专区| 国内精久久久久久久久久人| 亚洲品质视频自拍网| 国产+成+人+亚洲欧洲| 国产精品久久久久av| 日韩精品在线免费| 日本精品在线视频| 中文字幕av一区| 亚洲最大福利视频| 日韩视频永久免费观看| 亚洲国产成人精品一区二区| 国产精品成人aaaaa网站| 欧美精品一区二区免费| 亚洲国产精品资源| 久久久久久久影视| 亚洲欧美国产精品va在线观看| 岛国视频午夜一区免费在线观看| 欧美激情精品久久久久久变态| 性夜试看影院91社区| 国产欧美精品日韩精品| 亚洲国产高清高潮精品美女| 国产成人拍精品视频午夜网站| 亚洲一级免费视频| 国产精品专区h在线观看| 韩国三级电影久久久久久| 色偷偷av亚洲男人的天堂| 日韩电影在线观看免费| 国产一区二区三区在线观看视频| 欧美成人精品三级在线观看| 亚洲18私人小影院| 成人妇女淫片aaaa视频| 4438全国亚洲精品在线观看视频| 亚洲国产天堂久久综合网| 欧美人交a欧美精品| 欧美午夜片在线免费观看| 精品国产一区二区在线| 中文字幕在线视频日韩| 97视频免费在线观看| 精品中文字幕在线观看| 国产精品一区二区久久久久| 久久av资源网站| 欧美一区三区三区高中清蜜桃| 国产亚洲成精品久久| 国产成人avxxxxx在线看| 亚洲自拍偷拍色片视频| 亚洲精品久久久久久下一站| 国产一区二区香蕉| 国产一区二区三区视频| 亚洲欧美中文字幕在线一区| 亚洲欧美在线一区二区| 国产在线视频91| 久久久噜噜噜久噜久久| 亚洲成avwww人| 国产综合福利在线| 美女啪啪无遮挡免费久久网站| 欧美日韩国产精品一区| 精品成人av一区| 成人激情视频在线观看| 亚洲美女黄色片| 亚洲欧洲免费视频| 66m—66摸成人免费视频| 国产精品视频xxxx| 亚洲free性xxxx护士hd| 欧亚精品在线观看| 亚洲成人av在线播放| 2018国产精品视频| 日韩男女性生活视频| 日韩高清av在线| 国产精品91在线| 亚洲国产日韩欧美在线动漫| 日韩中文字幕免费看| 青草热久免费精品视频| 这里只有精品在线播放| 日韩av电影在线免费播放| 欧美日韩国产色| 亚洲а∨天堂久久精品9966| 日韩欧美黄色动漫| 视频一区视频二区国产精品| 亚洲色图激情小说| 少妇高潮久久77777| 亚洲国产精品yw在线观看| 亚洲欧美国产一区二区三区| 国产精品久久久久久久久久久久久| 日本最新高清不卡中文字幕| 中文字幕欧美视频在线| 国产日本欧美一区二区三区| 日韩欧美福利视频| 亚洲成人在线网| 欧美成人激情视频| 这里精品视频免费| 青青a在线精品免费观看| 51精品国产黑色丝袜高跟鞋| 日本欧美一二三区| 中文字幕日韩欧美精品在线观看| 美女999久久久精品视频| 亚洲精品中文字幕av| 欧美中文字幕精品| 欧美日韩精品国产| 国产精品稀缺呦系列在线| 日韩av在线电影网| www.日韩不卡电影av| 91久久精品美女| 日韩视频中文字幕| 国产女人18毛片水18精品| 伊人久久综合97精品| 精品国产91久久久久久老师| 午夜精品久久久99热福利| 欧美黑人一区二区三区| 国产一区二区三区直播精品电影| 成人免费淫片aa视频免费| 精品国产一区二区三区久久久| 97视频人免费观看| 亚洲电影免费观看高清| 97超级碰在线看视频免费在线看| 日韩在线欧美在线| 久久久国产成人精品| 红桃视频成人在线观看| 亚洲精品美女久久久久| 亚洲精品有码在线| 国产精品久久久久久久久久东京|