複製有兩種方式,一種是基於二進位制日誌檔案位置的複製,一種是基於GTID(global transaction identifiers)的複製。
MySQL中的複製支援不同型別的同步方式。原始的同步方式是單行的,非同步複製。與其對應的是MySQL叢集使用的同步複製。在MySQL5.7中開始支援針對非同步複製的半同步複製。
一、基於二進位制日誌檔案位置的複製
在作為主的伺服器上把對資料庫的更新和改變作為“事件”寫入二進位制檔案,二進位制檔案中的資訊根據記錄下的對資料庫改變的不同而記錄成不同的日誌格式。從服務區通過一定的配置,去讀取主伺服器的二進位制檔案並在本地伺服器中執行檔案中紀錄的事件。
每個從伺服器都會收到主伺服器上的二進位制日誌檔案的完整拷貝。從伺服器自己決定二進位制檔案中的哪些語句應該被執行。除非你額外指明,否則主伺服器上二進位制日誌檔案中的所有事件都會在從上執行。如果需要,可以指定從只處理應用於特定資料庫或者表的事件。
tips:不能對主伺服器指定只紀錄某些事件
每個從伺服器都儲存了一條二進位制日誌的座標:檔名和它現在從主伺服器上讀和處理到的當前檔名對應的檔案中的位置。這意味著多個從可以連線到主並且執行同一個二進位制日誌的不同部分。還有,因為每個從都紀錄了當前執行到的二進位制檔案的位置,所以從就有可能斷開到主的連線,重連和繼續處理。
具體的操作步驟