MySQL主從架構之Master-Slave主從同步


MySQL復制

MySQL復制是指將主庫上的DDL和DML操作通過二進制日志傳到從庫上,使主庫和從庫上的數據保持同步

復制原理:

主服務器將更新寫入二進制日志文件,並維護文件的一個索引來跟蹤日志循環。這些日志可以記錄發送到從服務器的更新。當一個從服務器連接主服務器時,它通知主服務器從服務器在日志中讀取的最后一次成功更新的位置。從服務器接受從那時起發生的任何更新,然后封鎖並等待主服務器通知新的更新。

MySQL主從架構:優點:故障時候可以切庫;讀寫分離;從庫執行其他業務例如備份。

1:Master-Slave    主從同步

2:Master-Slave-Slave……級聯 

3:Master-Master   互為主備

【主從同步】Master-Slave

注:需要主庫打開log-bin ;設置server-id

#mysqldump -uroot -p --all-databases --master-data=2 --routines --events --quick>

  

--master-data=2 表示需要記錄導出數據當時主庫的binlog位置
--routines 表示導出存儲過程
--events 表示導出事件
--quick 表示讓服務端不將結果集一次發送,而是分批發送,可減輕壓力
注:--master-data后默認是鎖庫的,可確保數據一致性,即導出數據和binlog位置的一致。
對於Innodb引擎,可增加--single-transaction取消鎖庫並利用Innodb事務特性確保數據一致

 

#創建同步賬號

#grant replication slave, replication client on *.* to  replication@'%' identified by 'gechong';

 

#確定主庫同步點

可以在Master上執行 SHOW MASTER STATUS; 也可以查看剛才導出的文件

 

#從庫同步數據

#mysql -uroot -p < Master_data_20140920.sql

  

#從庫CHANGE

#CHANGE MASTER TO MASTER_LOG_FILE='mysql.000002', MASTER_LOG_POS=525, master_host='10.1.29.10', master_port=3306, master_user='replication', master_password='gechong';

  

#查看從庫狀態

#SHOW SLAVE STATUS \G  

如果Slave_IO_Running 和 Slave_SQL_Running都為yes時,則Master-Slave搭建成功。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM