MySQL 主從更新滯後問題

如何強制master在slave趕上全部更新之前阻止更新?

  答:執行以下步驟:

  1. 在master上,執行以下語句:

  mysql> FLUSH TABLES WITH READ LOCK;(阻止所有的更新)

  mysql> SHOW MASTER STATUS;

  記錄下結果中的日誌文件名以及偏移位置,它們是同步的座標值。

  2. 在slave上,提交以下語句,MASTER_POS_WAIT() 函數的參數的值就是前面取得的同步座標值:

  mysql> SELECT MASTER_POS_WAIT('log_name', log_offset);

  SELECT 語句會阻止更新,直到slave同步到了上述日誌文件及位置。在這個時候,slave就和master保持同步了,並且這個語句就會返回。

  3. 在master上,執行以下語句允許master重新處理更新操作:

  mysql> UNLOCK TABLES;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章