MySQL雙主複製小結

注:本文並不是手把手搭建MySQL雙主複製的教程,僅僅只是本人學習以後的心得體會。所以中間看起來會有很大跳躍,建議先反覆試驗官方手冊中搭建主從環境直至熟練掌握

搭建雙主複製與主從複製並沒有太多區別,差別僅僅是兩臺機器都開啓二進制日誌,並分別執行change master to語句

以下是配置文件上雙主與主從不同的地方,增加在[mysqld]節點下(全部都是可選,不是必須值)

[mysqld]
slave-skip-errors=all
log-slave-updates  
sync_binlog=1
slave-skip-errors=all表示忽略所有錯誤。注意:這一塊我沒有深入研究,反正大體意思就是發生錯誤不影響複製的繼續,但不知道忽略的是來自於主庫的錯誤,還是主庫數據插入從庫導致從庫發生的錯誤,或者是從庫自己產生的錯誤,也不知道忽略以後,err日誌是否會記錄這些錯誤

log-slave-updates  添加這個參數,可以讓從庫和主庫的二進制日誌一致。如果未添加,則來自於主庫的數據,是不會記錄到從庫的二進制日誌的,這個不利於崩潰後的數據恢復。使用mysqlbinlog可以解析並查看log,如mysqlbinlog mysql-bin.000001 > bin-log.log。自己試試最容易理解這個參數的意思。

sync_binlog=1 大概是多少次事務以後強制刷新內存中的日誌到硬盤,默認是0,不強制刷新,要是對丟一點數據無所謂,保持0挺好,因爲這個選項對性能有影響。

另外如果兩個主庫都負責寫入工作,那麼還要分別配置以下選項,讓自增主鍵的起點不同,這樣防止同步的時候發生自增主鍵衝突的情況。不過我這裏的環境雖然是雙主,但是始終只有一個寫,應該不會產生這個問題。

auto_increment_offset=1
auto_increment_increment=2
auto_increment_offset=2
auto_increment_increment=2





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