注冊成功
X
W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
背景
1.Pika Replicate
- pika支持master/slave的復制方式,通過slave端的slaveof命令激發(fā)
- salve端處理slaveof命令,將當前狀態(tài)變?yōu)閟lave,改變連接狀態(tài)
- slave的trysync線程向master發(fā)起trysync,同時將要同步點傳給master
- master處理trysync命令,發(fā)起對slave的同步過程,從同步點開始順序發(fā)送binlog或進行全同步
2.Binlog
- pika同步依賴binlog
- binlog文件會自動或手動刪除
- 當同步點對應的binlog文件不存在時,需要通過全同步進行數據同步
全同步
1. 簡介
- 需要進行全同步時,master會將db文件dump后發(fā)送給slave
- 通過rsync的deamon模式實現(xiàn)db文件的傳輸
2. 實現(xiàn)邏輯
- slave在trysnc前啟動rsync進程啟動rsync服務
- master發(fā)現(xiàn)需要全同步時,判斷是否有備份文件可用,如果沒有先dump一份
- master通過rsync向slave發(fā)送dump出的文件
- slave用收到的文件替換自己的db
- slave用最新的偏移量再次發(fā)起trysnc
- 完成同步


3. Slave連接狀態(tài)
- No Connect:不嘗試成為任何其他節(jié)點的slave
- Connect:Slaveof后嘗試成為某個節(jié)點的slave,發(fā)送trysnc命令和同步點
- Connecting:收到master回復可以slaveof,嘗試跟master建立心跳
- Connected: 心跳建立成功
- WaitSync:不斷檢測是否DBSync完成,完成后更新DB并發(fā)起新的slaveof

以上內容是否對您有幫助:
更多建議: