#不停庫不鎖表在線主從配置html
使用 Xtrabackup 在線對MySQL作主從複製mysql
1.數據量大的話仍是建議使用工具例如xtrabackup,mysqldump比較適合操做10G如下的數據備份複製。
2.作業務以前考慮清楚具體要實現什麼需求,不要盲目使用,選擇適合本身的方案
3.Seconds_Behind_Master: 從屬服務器「落後」多少秒 利用好主從服務器延遲linux
#主從不一樣步問題解決web
1.重視報錯日誌:根據錯誤代碼找到具體錯誤緣由再針對分析,作到提早預防或者缺陷補充
2.show slave status \G; 關注error行相關信息緩存
#主主架構實現服務器
關於 auto_increment架構
MySQL auto_increment_increment,auto_increment_offset 用法分佈式
1.多主須要考慮自增加ID問題,這個須要特別設置配置文件,好比雙主,可使用奇偶,總之,主之間設置自增加ID相互不衝突就能完美解決自增加ID衝突問題。
2.主主實現思路:
1)兩臺mysql均可讀寫,互爲主備,默認只使用一臺(masterA)負責數據的寫入,另外一臺(masterB)備用;
2)masterA是masterB的主庫,masterB又是masterA的主庫,它們互爲主從;
3)兩臺主庫之間作高可用,能夠採用keepalived等方案(使用VIP對外提供服務);
4)全部提供服務的從服務器與masterB進行主從同步(雙主多從);
5)建議採用高可用策略的時候,masterA或masterB均不因宕機恢復後而搶佔VIP(非搶佔模式);
1.優化從緩存入手:innodb_flush_log_at_trx_commit
2.進行分庫分表處理,這樣減小數據量的複製同步操做
mysql-proxy相似的產品有:mycat 基於阿里的開源軟件cobar,官網 www.mycat.io
Mycat
1.Mycat主從分離只是在讀的時候作了處理,寫入數據的時候,只會寫入到writehostStep By Step 搭建 MySql MHA 集羣,須要經過mycat的主從複製將數據複製到readhost,這個問題當時候我糾結了很久,數據寫入writehost後,readhost一直沒有數據,覺得是本身配置的問題,後面才發現Mycat就沒有實現主從複製的功能,畢竟數據庫自己自帶的這個功能纔是最高效穩定的。
2.分庫分表對於複雜的多表聯查sql可能支持的很差。
atlas
出自於360,不維護不更新了
Mycat和atlas都是經過代理實現的
mysql架構演變
1.第1階段考慮主從,冷備份
2.第2階段web和db分開,搭建memcached服務做爲緩存
3.第3階段,mysql主從,一主多從。讀寫分離
4.第4階段,把mysql原來的一主多從變爲一主一從,而後從做爲其餘從的主,而前面的主只負責網站業務的寫入,然後面的從不負責網站任何業務,只負責給其餘從同步bin-log。
5.第5階段,分庫分表。