1、引擎層提交了,但binlog沒寫入,備庫丟事務
2、引擎層沒有prepare,但binlog寫入,主庫丟事務
即使我們將引數設定成innodb_flush_log_at_trx_commit =1
和sync_binlog = 1
,也還會面臨這樣一種情況:主庫crash時還有binlog沒傳遞到備庫,如果我們直接提公升備庫為主庫,同樣會導致主備不一致,老主庫必須根據新主庫重做,才能恢復到一致的狀態。針對這種場景,我們可以通過開啟semisync的方式來解決,一種可行的方案描述如下:
設定雙1強持久化配置;
我們將semisync的超時時間設到極大值,同時使用semisync after_sync模式,即使用者執行緒在寫入binlog後,引擎層提交前等待備庫ack;
基於步驟1的配置,我們可以保證在主庫crash時,所有老主庫比備庫多出來的事務都處於prepare狀態;
將老主庫的最後乙個binlog進行截斷,截斷的位點即為步驟3記錄的位點;
啟動老主庫,那些已經傳遞到備庫的事務都會提交掉,未傳遞到備庫的binlog都會回滾掉。
c 有多少種可能導致寫檔案失敗?
1.路徑中有非法字元 path.getinvalidpathchars 2.檔名中有非法字元 path.getinvalidfilenamechars 3.檔案建立時,資料夾唯讀。4.檔案建立時,資料夾許可權不足,如需要管理員許可權。5.檔案建立時,資料夾不存在。7.相對路徑,最好轉換為絕對路徑。8...
避雷 六種職場著裝可能導致你面試失敗
儀容,簡單講是指人體不需要著裝的部位,主要是面部,廣義上還包括頭髮 手部 包括手指甲 以及穿著某些服裝而顯露出的腿部。儀容除了能給面試官造成直接而敏感的 第一印象 外,在接下來的整個面試過程中,美好的儀容也能令溝通更為順利,增進雙方了解程度。打造最穩妥儀容關鍵要遵循兩原則,兩適宜。兩原則為 簡單大方...
mysql導致索引失效的10種情況
索引失效的情況 1.全值匹配我最愛 建立的符合索引盡量和where的條件個數和順序都保持一致 2.最佳最字首法則,帶頭大哥不能死,中間兄弟不能斷。如果索引了多列,要遵守最左字首法則。指的是查詢從索引的最左前列開始並且不跳過索引中的列 3.不在索引列上做任何操作 計算 函式 自動or手動 型別轉換 會...