MYSQL的主從複製
當單臺MYSQL服務器無法滿足當前網站流量時的優化方案。需要搭建mysql集羣技術。
- 功能:
當向主服務器插入|修改|刪除數據時,數據會自動同步到從服務器。
注意:主從複製是單向的,只能主 -> 從
分爲兩種類型:發射型(一主多從):一般使用在:備份、讀寫分離。
環形(多主多從):一般使用:當主服務器壓力大時、跨地區的網站實現數據同步
在環形結構中,如果同時向三臺服務器的同一表插入記錄會出現“ID衝突的問題”。
解決辦法:讓三臺服務器生成不同的ID;
第一臺:1,4,7...
第二臺:2,5,8..
第三臺:3,6,9...
這個可以MYSQL的配置文件中設置:
- 主從的原理(利用了bin日誌)
Mysql中有一種日誌叫做bin日誌(二進制日誌)。這個日誌會記錄下所有修改了數據庫的SQL語句(insert,update,delete,ALTER TABLE,grant等等)。主從複製的原理其實就是把主服務器上的BIN日誌複製到從服務器上執行一遍,這樣從服務器上的數據就和主服務器上的數據相同了。
擴展:mysql中的日誌:
- 查詢日誌
- 錯誤日誌
- Bin日誌
- 慢日誌:你可以設置一個時間閥值,如0.5秒,那麼將來所以執行時間超過這個值的SQL語句就會被記錄下來。這樣我們就可以把慢的SQL語句記錄下來,專門進行優化。
用途:可以快速定位到網站中比較拖網站的SQL,然後可以優化:建索引,緩存這個SQL的結果。
- 實際的配置
把windows系統的MYSQL做爲主服務器,LINUX下的做爲從服務器。
主服務器:
1. 開啓bin日誌
修改mysql的配置文件:my.ini添加:
2,爲服務器指定一個server-id(主從服務器的ID值不能重複)