MySQL Replication(MySQL的主從復制)
主從數據庫的工作模型: 工作要點:1、主服務器要開啟二進制日志 2、從服務器要有一個用戶賬戶,這個賬戶要有權限到主服務器上請求二進制事件,請求完后保存到本地。 3、從服務器上要有一個線程,從中繼日志中不斷的讀事件,在本地replay。
Master/Slave Master: write/read Slaves: read 為什么? 冗余:promte(提升為主),異地災備 人工 工具程序:MHA 負載均衡:轉移一部分“讀”請求; 支援安全的備份操作; 測試; ... 主/從架構: 異步復制: 半同步復制: 一主多從; 一從一主; 級聯復制; 循環復制; 雙主復制; 一從多主: 每個主服務器提供不同的數據庫; 配置: 時間同步; 復制的開始位置: 從0開始; 從備份中恢復到從節點后啟動的復制; 主從服務器mysqld程序版本不一致? 主服務器: 配置文件my.cnf server_id=# log_bin=log-bin 啟動服務: mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'USERNAME'@'HOST' IDENTIFIED BY 'YOUR_PASSWORD'; mysql> FLUSH PRIVILEGES; 從服務器: 配置文件my.cnf server_id=# relay_log=relay-log 啟動服務: mysql> CHANGE MASTER TO MASTER_HOST='HOST',MASTER_USER='USERNAME',MASTER_PASSWORD='YOUR_PASSWORD',MASTER_LOG_FILE='BINLOG',MASTER_LOG_POS=#; mysql> START SLAVE [IO_THREAD|SQL_THREAD]; mysql> SHOW SLAVE STATUS; 課外作業:基于SSL的復制的實現;
配置主從數據庫實例
1、加入使用centos7(2)和centos7(3)這兩臺虛擬機當做節點,(2)做主,(3)做從。第一步先同步時間
兩臺主機分別執行ntpdate 10.1.0.1
配置/etc/chrony.conf文件
時間節點已經同步
2、在節點1(centos7(2)),配置/etc/my.cnf
log-bin=master-log 啟動二進制日志 server-id=1 設置id
啟動mysql服務
systemctl start mariadb.service
驗證二進制日志文件
主節點連入數據庫,執行show master status,查看是從哪個文件,哪個位置開始。即便從0開始,待會復制時也要指明從哪個文件哪個位置開始。
3、在節點2(centos7(3)),配置從節點,vim /etc/my.cnf
啟動mysql服務
systemctl start mariadb.service
查看日志文件
4、主服務器上,授權一個擁有連接復制權限的賬號
然后FLUSH PRIVILEGES
主從上面只需要業務同步就可以,不需要授權同步
這時,主服務器授權已經完成,從服務器就可以連上了
查看從服務器使用與否
show slave status
這里還沒有啟動復制功能,啟動復制功能start slave
查看,已經復制過來了
在主節點上做一些創建類的操作,創建一個mydb2數據庫,通常從節點上可以查看到這個數據庫
注意:復制是單向的,從服務器上創建數據庫,主服務器無法顯示
讓從服務器只能讀,不能寫,設置成只讀
再也不釋放鎖,誰也寫不進來
這樣的話從線程也寫不了了。所有只能寄托從服務器不要誤操作。
原創文章,作者:15152188070,如若轉載,請注明出處:http://www.www58058.com/60261