資料同步原理
主從的第一次同步是全量同步:
Master如何判斷slave是不是第一次來同步資料?這裡會用到兩個很重要的概念:
- Replication id:簡稱replid,是資料集的標記,id一致則說明是同一資料集。每一個master都有唯一的replid,slave則會繼承master節點的replid
- offset:偏移量,隨著記錄在repl_baklog中的資料增多而逐漸增大。Slave完成同步時也會記錄當前同步的offset。如果slave的offset小於master的offset,說明slave資料落後於master,需要更新。
因此slave做資料同步,必須向master宣告自己的Replication id和Offset,master才可以判斷到底需要同步哪些資料。
是不是第一次,是根據replid是否一致判斷的。