注:本文並不是手把手搭建MySQL雙主複製的教程,僅僅只是本人學習以後的心得體會。所以中間看起來會有很大跳躍,建議先反覆試驗官方手冊中搭建主從環境直至熟練掌握
搭建雙主複製與主從複製並沒有太多區別,差別僅僅是兩臺機器都開啓二進制日誌,並分別執行change master to語句
以下是配置文件上雙主與主從不同的地方,增加在[mysqld]節點下(全部都是可選,不是必須值)
[mysqld] slave-skip-errors=all log-slave-updates sync_binlog=1 |
log-slave-updates 添加這個參數,可以讓從庫和主庫的二進制日誌一致。如果未添加,則來自於主庫的數據,是不會記錄到從庫的二進制日誌的,這個不利於崩潰後的數據恢復。使用mysqlbinlog可以解析並查看log,如mysqlbinlog mysql-bin.000001 > bin-log.log。自己試試最容易理解這個參數的意思。
sync_binlog=1 大概是多少次事務以後強制刷新內存中的日誌到硬盤,默認是0,不強制刷新,要是對丟一點數據無所謂,保持0挺好,因爲這個選項對性能有影響。
另外如果兩個主庫都負責寫入工作,那麼還要分別配置以下選項,讓自增主鍵的起點不同,這樣防止同步的時候發生自增主鍵衝突的情況。不過我這裏的環境雖然是雙主,但是始終只有一個寫,應該不會產生這個問題。
auto_increment_increment=2 |