MySQL高可用集群環境搭建
01、MySQL高可用環境方案
02、MySQL主從復制原理
03、MySQL主從復制作用
04、在Linux環境上安裝MySQL
05、在MySQL集群環境上配置主從復制
06、MySQL高可用集群帶來的問題
07、MySQL讀寫分離MyCat使用
08、分表分庫插件ShardingJdbc
09、MySQL數據庫索引底層原理(重點)
10、MySQLSQL語句性能優化
MySQL數據庫簡單介紹
MySQL作為世界上使用最為廣泛的數據庫之一,免費是其原因之一。但不可忽略的是它本身的功能的確很強大。隨着技術的發展,在實際的生產環境中,由單台MySQL數據庫服務器不能滿足實際的需求。此時數據庫集群就很好的解決了這個問題了。采用MySQL分布式集群,能夠搭建一個高並發、負載均衡的集群服務器(這篇博客暫時不涉及)。在此之前我們必須要保證每台MySQL服務器里的數據同步。數據同步我們可以通過MySQL內部配置就可以輕松完成,主要有主從(master slave )復制和主主復制。
主從復制介紹
相信很多同學在學習Redis的時候,已經了解過主從復制的作用。在MySQL集群環境中,可以分為主節點與從節點,通過主從復制可以實現數據備份、故障轉移、MySQL集群、高可用、讀寫分離等。
MySQL的主從復制是MySQL本身自帶的一個功能,不需要額外的第三方軟件就可以實現,其復制功能並不是copy文件來實現的,而是借助binlog日志文件里面的SQL命令實現的主從復制,可以理解為我再Master端執行了一條SQL命令,那么在Salve端同樣會執行一遍,從而達到主從復制的效果。
如果Mysql是集群的情況下,需要考慮哪些問題?
數據實時同步的問題
主從復制原理
MySQL的主從復制是MySQL本身自帶的一個功能,不需要額外的第三方軟件就可以實現,其復制功能並不是copy文件來實現的,而是借助binlog日志文件里面的SQL命令實現的主從復制,可以理解為我再Master端執行了一條SQL命令,那么在Salve端同樣會執行一遍,從而達到主從復制的效果。
主機MySql 會將dmlMySql(create、update、delete、insert等,不包括查詢sql) 語句寫入到二進制日志文件中(binLog)。
從庫生成兩個線程,一個I/O線程,一個SQL線程; i/o線程去請求主庫 的binlog,並將得到的binlog日志寫到relay log(中繼日志) 文件中;
主庫會生成一個 log dump 線程,用來給從庫 i/o線程傳binlog; SQL 線程,會讀取relay log文件中的日志,並解析成具體操作,來實現主從的操作一致,而最終數據一致;
從節點中Sql線程的作用:就是IO線程從主機獲取二進制執行文件之后,通過Sql線程進行執行二進制執行文件。sql線程依賴於IOx線程。
主庫與從庫會建立長連接,如果產生網絡延遲的情況下 會產生數據不同步的問題。
注意:Mysql主從復制是Mysql本身自帶的功能。myCat做讀寫分離 和 Nginx 比較相似。
如果不小心數據被刪除了,可以從binlog日志中恢復。
主從復制環境配置
服務器准備兩台
192.168.0.105 主服務器配置
192.168.0.107 從服務器配置
