iT邦幫忙

0

關於mysql的一些同步問題想請教

  • 分享至 

  • xImage

如果我設置了單向的replication

而slave那台機器發生了延遲不同步的問題

那我直接再上面指定pos號碼

例:master 1 2 3 4 5 6 7
slave 1 2 3 4卡在這

直接指定7的話中間的5和6也會被帶到slave裡嗎??

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

10
wiseguy
iT邦超人 1 級 ‧ 2015-02-20 15:55:20
最佳解答

看不懂你在問什麼,不過可以跟你解釋一下 replication 的運作:
假如使用 Master/Slave 的單向 replication,Master 不會等待 Slave,它自己可讀可寫,但寫到 Slave 時會有延遲是一定的。假如你寫到 Master 再馬上從 Slave 讀出,不見得讀得到。不過 Master 終究會同步到 Slave。大多數使用這種架構的人,都是把 Master 當作寫入口,Slave 當作讀出口,比較不會有問題。
假如你不希望有延遲,那請改用 MySQL Cluster 版本。Cluster 不會有延遲,不過它當然不是萬能,會有些限制,比如只能用 InnoDB、每個 table 一定要有 Primary Key、...

wiseguy iT邦超人 1 級 ‧ 2015-02-21 17:37:53 檢舉

補充:使用 Cluster 架構,一定要 3 台以上(最少 3 台),才有 high availability (HA) 效果。4 台以上的話,掛掉兩台或隨時停掉一台進行維修都無妨。如果只有兩台,只要其中一台掛掉,則另一台會自動停止,以防資料錯亂,但這麼一來服務就中斷了,比 Master/Slave 還糟。
程式可讀寫任何 1 台成員,因為每一台都是 Master。我是用 php,所以使用 php-pecl-mysqlnd-ms 模組,就可以自動選擇任一台。其它程式則可以選擇用 db proxy。

wiseguy iT邦超人 1 級 ‧ 2015-02-22 22:14:21 檢舉

jimmykai提到:
如果今天master的pos號碼在200,而slave的pos號碼停在100
我直接指定slave的pos到200的話,101~199這段的資料會不會也帶到slave上

移動 pos 並不會影響資料同步行為,所以這很正常啊。

我要發表回答

立即登入回答