傳統項目模型:
2.如果傳統項目中遇到了高並發的情況.單台服務器不足以支持
分布式的處理:
傳統數據庫中存在的問題:
1.傳統數據庫設計時,如果服務器宕機,將不能為用戶提供服務導致整個系統崩潰. 2.如果數據庫突然宕機.會導致數據丟失. 3.為了防止數據丟失,要進行實時備份 冷備份:通過數據庫工具進行人為的導出sql.但是手動導出數據可能在中間節點宕機時也會造成數據庫的丟失. 熱備份:通過程序進行控制,定時轉儲.盡可能的保證數據的完整性.但是還有大量的問題.
數據庫的主從複制:
主從複制原理:
角色劃分:
主庫Master:主要進行的是數據的”更新操作”
從庫Slave: 實時備份主庫的更新信息
二進制日志: 實時記錄主庫的更新操作,並且形式二進制碼.
中繼日志: 保存主庫的更新信
##### 調用原理
1.當主庫更新數據後,會實時的寫入到二進制日志文件中
2.從庫的IO線程,實時的監聽主庫的二進制文件,如果二進制文件發送了改變則啟動線程進行讀取修改後的內容.
3.通過IO線程將讀取的二進制文件寫入到中繼日志中.
4.日志中的消息,進行 數據庫的”更新操建”
實戰搭建
- 環境准備:三台centos6以上的服務器(可以使用虛擬機代替)
- 軟件准備:mysql角色數據庫(用戶構建主從服務器集群)
將軟件通過工具上傳到linux上
兩個百分之百同時出現才說明安裝成功!
這時我們需要新建一個my.cnf文件,一般情況下路徑是不用修改可以直接拿來用的:
[mysqld]
#skip-name-resolve
#skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
server-id=1
log-bin=mysql-bin
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
注意主從服務器server-id不能相同:一般把master選為1 其他的依次遞增
查看主服務狀態:
如何配置出錯可以清除操作:
按步驟配置:
測試結果:
實現主從複制的mysql數據庫已經搭建完成啦 以後的數據實時備份,備份實時更新再也不擔心數據丟失啦。但要想實現數據庫抗住高並發,高可用,還需要配置數據庫的讀寫分離。由於這篇博客太長啦 我准備把數據庫的讀寫分離單獨出來。歡迎大家繼續關注!