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

首頁 > 數據庫 > PostgreSQL > 正文

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

2020-01-31 15:21:33
字體:
來源:轉載
供稿:網友

背景

數據庫的事務是原子操作,要么成功,要么失敗。但是實際上在客戶端的視角,可能有第三種狀態: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,查詢數據庫中是否存在這條記錄。 
如果不存在,說明事務提交失敗。 
如果存在,說明事務提交成功。(因為數據庫的事務是原子操作) 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品2019中文字幕| 国产亚洲精品成人av久久ww| 欧美一区二区三区图| 欧美精品一区三区| 欧美精品在线视频观看| 欧美成人激情在线| 久久中文字幕在线视频| 亚洲精品久久久久中文字幕二区| 国产69精品久久久久9999| 成人福利在线视频| 日韩中文字幕在线| 亚洲一级片在线看| 亚洲黄色在线看| 国产精品日韩在线观看| 久久久久久久久91| 粗暴蹂躏中文一区二区三区| 97超级碰碰碰| 精品在线观看国产| 国产亚洲精品综合一区91| 国产一区在线播放| 国产欧美va欧美va香蕉在| 国产91精品久久久久久| 91国内产香蕉| 国产一区二区三区精品久久久| 91免费国产视频| 91免费看视频.| 亚洲视频777| 日韩第一页在线| 最近的2019中文字幕免费一页| 日韩高清av一区二区三区| 全亚洲最色的网站在线观看| 欧美日韩国产一区二区三区| 成人免费淫片视频软件| 色综合色综合网色综合| 国产日韩换脸av一区在线观看| 疯狂欧美牲乱大交777| 欧洲永久精品大片ww免费漫画| 欧美区二区三区| 日韩在线观看电影| www.午夜精品| 成人国产精品久久久| 国产综合色香蕉精品| 国产精品成人观看视频国产奇米| 久久躁日日躁aaaaxxxx| 日韩欧美有码在线| 亚洲色图在线观看| 国产精品日本精品| 91精品啪在线观看麻豆免费| 欧美xxxx做受欧美.88| 日韩在线观看免费高清完整版| 深夜福利亚洲导航| 色一情一乱一区二区| www欧美xxxx| 日韩福利伦理影院免费| 91tv亚洲精品香蕉国产一区7ujn| 在线一区二区日韩| 国产精品免费久久久久久| 亚洲性夜色噜噜噜7777| 国产97在线观看| 一区三区二区视频| 国内精品国产三级国产在线专| 国产在线精品一区免费香蕉| 国产精品99久久久久久久久| 亚洲欧美日韩国产精品| 精品久久香蕉国产线看观看亚洲| 欧美激情综合色| 91av在线国产| 亚洲aaaaaa| 欧美有码在线观看| 国产乱肥老妇国产一区二| 夜夜嗨av色一区二区不卡| 91精品在线国产| 国内精品久久久久影院 日本资源| 久久精品国产一区二区三区| 欧美激情日韩图片| 亚洲最大福利视频网| 成人性教育视频在线观看| 亚洲欧洲国产一区| 欧美成人精品在线播放| 91久久嫩草影院一区二区| 黑人巨大精品欧美一区二区一视频| 欧美乱大交xxxxx另类电影| 久久男人资源视频| 日韩成人中文字幕| 中文字幕精品久久久久| 中文字幕亚洲一区在线观看| 久久视频在线直播| 久久精品国产欧美亚洲人人爽| 国产脚交av在线一区二区| 久久精品亚洲国产| 成人做爰www免费看视频网站| 97成人精品视频在线观看| 国产精品96久久久久久又黄又硬| 欧美专区在线播放| 一本色道久久88综合日韩精品| 日韩精品999| 国产精品人成电影| xvideos成人免费中文版| 91精品视频在线免费观看| 久久久久久久久久国产| 亚洲天堂日韩电影| 亚洲电影免费观看高清完整版| 亚洲三级黄色在线观看| 日韩av在线免费播放| 成人精品视频99在线观看免费| 欧美人与性动交a欧美精品| 日本高清久久天堂| 国产精品视频免费在线| 91精品国产91久久久久| 国产精品久久一区主播| 亚洲free性xxxx护士白浆| 国产一区二区成人| 久久人人爽人人| 国产精品免费看久久久香蕉| 91中文在线观看| 国产一区二区视频在线观看| 久久五月天色综合| 国产成人jvid在线播放| 欧美高清理论片| 韩剧1988免费观看全集| 日韩成人免费视频| 中文在线资源观看视频网站免费不卡| 成人夜晚看av| 九九九热精品免费视频观看网站| zzjj国产精品一区二区| 国产精品久久久久久亚洲影视| 国自产精品手机在线观看视频| 久久精品久久久久久国产 免费| 亚洲国产日韩精品在线| 热久久99这里有精品| 日韩电影视频免费| 欧美肥婆姓交大片| 日韩中文字幕在线免费观看| 久久亚洲电影天堂| 亚洲色图国产精品| 欧美激情极品视频| 在线亚洲午夜片av大片| 九九热这里只有精品免费看| 久久久成人精品视频| 一级做a爰片久久毛片美女图片| 国产精品丝袜久久久久久不卡| 日韩欧美亚洲一二三区| 久久综合色88| 国产欧亚日韩视频| 亚洲最新在线视频| 亚洲精品国精品久久99热| 亚洲成年网站在线观看| 日韩精品丝袜在线| www.国产一区| 精品国产欧美成人夜夜嗨| 日韩av在线网| 精品亚洲一区二区三区四区五区| 91久久久久久国产精品| 琪琪亚洲精品午夜在线| 亚洲片在线观看| 精品无人区乱码1区2区3区在线| 日本欧美在线视频| 欧美成人手机在线| 91精品视频在线播放| 午夜精品视频在线| 国产成人精品日本亚洲| 亚洲成av人影院在线观看| 亚洲第一福利网站| 日韩电影中文字幕av|