redis資料丟失你怎麼處理?
1. 兩種資料丟失的情況
主備切換的過程,可能導致資料丟失;
1.1. 非同步複製導致的資料丟
因為master -> slave的複製是非同步的,所以可能有部分資料還沒複製到slave,master就當機了,此時這些部分資料就丟失了
1.2 腦裂導致的資料丟失
腦裂就是說,某個maser 所在機器突然脫離了正常的網路,跟其他slave機器不能連線,但是實際上master還執行著,此時哨兵可能就會認為master 當機了,然後開啟選舉,將其他slave切換成了master,這個時候,叢集裡面就會有2個master,也就是所謂的腦裂,此時雖然某個slave被切換成了master,但是可能client還沒來得及切換到新的master,還繼續寫向舊master的資料可能也丟失了,因此master再次恢復的時候,會被作為一個slave掛到新的master 上去,自己的資料將會清空,重新從新的master 複製資料
2. 解決非同步複製和腦裂資料導致的資料丟失
# redis.conf 配置
Min-slaves-to-write 1
Min-slaves-max-lag 10
上面這兩個配置可以減少非同步複製和腦裂導致的資料丟失
###2.1 減少非同步複製的資料丟失
有了min-slaves-max-lag這個配置,可以確保說,一旦slave複製資料和ack延遲太長,就認為可能master 當機後損失的資料太多了,那麼就拒絕寫請求,這樣可以吧master當機時由於部分資料丟失。
2.2 減少腦裂的資料丟失
如果一個master出現了腦裂,跟其他slave丟了連線,那麼上面這兩個配置可以去確保說,如果不能繼續給指定數量的slave傳送資料,而且slave超過10秒沒有給自己ack訊息,那麼就直接拒絕客戶端的寫請求,這樣腦裂活的舊master就不會接受client的新資料,也就避免了資料丟失,上面配置確保了,如果跟任何一個slave丟了連線,在10秒後發現沒有slave給自己ack,那麼就拒絕新的寫請求,因此腦裂場景下,最多丟失10秒的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2459/viewspace-2825789/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存崩潰導致資料丟失如何處理
- Mac資料丟失怎麼用EasyRecovery恢復Mac
- Oracle impdp遷移資料後主鍵丟失故障處理Oracle
- 香港伺服器資料丟失怎麼解決?伺服器
- 伺服器資料丟失了怎麼恢復/分割槽丟失恢復教程伺服器
- Redis能保證資料不丟失嗎?Redis
- 丟失重做日誌怎麼處理
- 控制檔案丟失處理方法
- 關於丟失表空間資料檔案的處理方式
- 隨身碟檔案丟失怎麼辦 隨身碟資料丟失快速恢復方法
- UNDO表空間資料檔案丟失處理(二)正常關閉資料庫資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(1)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(3)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(2)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(4)Oracle資料庫
- Oracle資料庫聯機日誌檔案丟失處理方法(5)Oracle資料庫
- 壞塊處理10231(不過會丟失資料)
- redo log檔案丟失處理措施
- lvm資訊丟失處理辦法LVM
- UNDO表空間資料檔案丟失處理(一)預備知識
- Oracle資料庫聯機日誌檔案丟失處理方法(總結)!Oracle資料庫
- Windows11電腦丟失了資料該怎麼恢復?Windows
- oracle 證書丟失怎麼辦Oracle
- Oracle資料庫聯機日誌檔案丟失處理方法(總結)(轉)Oracle資料庫
- 電腦硬碟資料丟失後怎麼恢復?硬碟資料恢復技巧教程硬碟資料恢復
- 何處理資料恢復 資料丟失 面試tx的架構師的崗位問的資料恢復面試架構
- OGG整合抽取模式丟失歸檔處理模式
- oracle中undo表空間丟失處理方法Oracle
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- Oracle_dg歸檔丟失問題處理Oracle
- 使用者職責丟失異常處理
- 雲伺服器redis重啟資料丟失如何解決伺服器Redis
- 為什麼使用Socket接收時丟失資料?
- Jison解決JS處理後端返回的Long型資料精度丟失問題JS後端
- [原創] Oracle資料庫聯機日誌檔案丟失處理方法(總結)!Oracle資料庫
- Jtti:怎樣正確處理Redis中的海量資料JttiRedis
- Redo丟失的4種情況及處理方法
- Redo 丟失的4種情況的處理方法