看不懂你在問什麼,不過可以跟你解釋一下 replication 的運作:
假如使用 Master/Slave 的單向 replication,Master 不會等待 Slave,它自己可讀可寫,但寫到 Slave 時會有延遲是一定的。假如你寫到 Master 再馬上從 Slave 讀出,不見得讀得到。不過 Master 終究會同步到 Slave。大多數使用這種架構的人,都是把 Master 當作寫入口,Slave 當作讀出口,比較不會有問題。
假如你不希望有延遲,那請改用 MySQL Cluster 版本。Cluster 不會有延遲,不過它當然不是萬能,會有些限制,比如只能用 InnoDB、每個 table 一定要有 Primary Key、...
補充:使用 Cluster 架構,一定要 3 台以上(最少 3 台),才有 high availability (HA) 效果。4 台以上的話,掛掉兩台或隨時停掉一台進行維修都無妨。如果只有兩台,只要其中一台掛掉,則另一台會自動停止,以防資料錯亂,但這麼一來服務就中斷了,比 Master/Slave 還糟。
程式可讀寫任何 1 台成員,因為每一台都是 Master。我是用 php,所以使用 php-pecl-mysqlnd-ms 模組,就可以自動選擇任一台。其它程式則可以選擇用 db proxy。
jimmykai提到:
如果今天master的pos號碼在200,而slave的pos號碼停在100
我直接指定slave的pos到200的話,101~199這段的資料會不會也帶到slave上
移動 pos 並不會影響資料同步行為,所以這很正常啊。