MySQL主從架構及基於SSL實現數據復制
一:Mysql主從架構拓撲圖:
二: MySQL主從架構相關知識點
在MySQL的主從架構中,有關鍵的三個線程:
dump thread :當主服務器上的有使數據庫發生改變的操作的語句時(基於語句,基於行的,混合三種語句)
會先將改操作語句記錄到二進制log中,該線程通知從服務器有數據庫操作語句發生,讓從服務器的I/O thread 復制
I/O thread:監控主服器的二進制log ,及傳輸數據庫操作語句,將這些語句記錄到中繼日志(relay log)中
SQL thread:執行從服務器中的中繼日志語句,到數據庫存儲中。
在MySQL 5.5版本中的主從架構中的主服務器中為了處理高並發業務時可能是多線程寫入,
而在從服務器的SQL thread是單線程寫入數據庫存儲中的,這可能會造成從數據庫滯後的問題
三:MySQL的主從架構的過程
首先建立MySQL數據庫的Master(172.16.10.4)和Slave(172.16.10.5)之間為主從關系
Master的server-id:1
Slave的server-id:15
Master:
啟用二進制日志
設置server-id
建立具有復制權限的用戶,且需要ssl認證
Slave:
啟用中繼日志
設置server-id
啟動Slave服務,並指定Master的相關參數
最後為Mater和Slave先創建ssh連接需要的證書,密鑰
關於證書,密鑰的實現請參看---> http://www.linuxidc.com/Linux/2012-06/63317.htm
主服務器配置
1:打開二進制日志
2:修改server-id 為1
3:創建具有復制權限的用戶mysql及為其提供RedHat的密碼
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO mysql@'172.16.10.5' IDENTIFIED BY 'redhat' REQUIRE SSL;
從服務器配置
打開中繼日志
修改server-id為15
主從服務器基於ssl復制的功能配置:
Master和Slave都打開have_ssl。
都在在配置文件中打開 have-openssl選項,並添加證書,密碼相關信息
主服務器配置:
注:重啟MySQL服務查看開啟狀態
從服務器的配置建議使用CHANGE MASTER TO 命令
詳見官方文檔:http://dev.mysql.com/doc/refman/5.1/en/replication-solutions-ssl.html