MySQL 5.5主从复制(Replication)
簡介
MySQL的主從復(fù)制(Replication),可以保持兩臺MySQL數(shù)據(jù)庫的內(nèi)容一致。因為其同步過程是異步的,所以備份數(shù)據(jù)庫上做任何操作,都不會影響主數(shù)據(jù)庫的性能。對游戲后臺數(shù)據(jù)庫而言,這是一個重大的優(yōu)勢:對備份數(shù)據(jù)庫的查詢、備份等操作都不會影響游戲的線上運行。配置主從復(fù)制有許多教程,但都很繁瑣。我根據(jù)官方文檔,總結(jié)出一個簡單的配置流程。
配置
- 線上運行的數(shù)據(jù)庫,稱之為Master服務(wù)器;備份的數(shù)據(jù)庫,稱之為Slave服務(wù)器。
- 分別修改兩臺服務(wù)器上的MySQL配置文件/etc/mysql/my.cnf:
Master服務(wù)器上加入這兩行(直接去掉注釋即可):
server-id = 1log_bin = /var/log/mysql/mysql-bin.log然后重啟MySQL:
service mysql restartSlave服務(wù)器加入這一行:
server-id = 2然后重啟MySQL:
service mysql restart
- 把Master數(shù)據(jù)庫備份傳給Slave數(shù)據(jù)庫:
- 方法一:MyISAM格式可以直接拷貝,速度快:
在Master服務(wù)器上備份數(shù)據(jù)庫,可以只有指定的數(shù)據(jù)庫,不同步mysql庫:
mkdir /masterdbmysqlhotcopy --resetmaster --flushlog --addtodest --regexp=<數(shù)據(jù)庫匹配正則表達(dá)式> /masterdb- 如果原來已經(jīng)設(shè)置過slave,現(xiàn)在要恢復(fù)數(shù)據(jù),那么
先在Slave服務(wù)器上mysql中停止slave模式并重置:
stop slave;reset slave;然后關(guān)閉mysql:
stop mysql- 刪除原有同名的數(shù)據(jù)庫。
停止mysql后,把備份的Master數(shù)據(jù)庫目錄傳到Slave服務(wù)器上的mysql目錄中,可以用scp命令拷貝:
scp -r -P <端口> /masterdb/* root@<IP地址>:/Jpcq/MySQL/拷貝到Slave的文件需要修改owner:
chown -R mysql:mysql *修改Slave的my.cnf文件,禁止同步mysql庫:
replicate-ignore-db=mysql啟動mysql:
start mysql重新開啟slave模式,在mysql中執(zhí)行:
change master to master_host='<Master IP地址>', master_user='<用戶名>', master_password='<密碼>';start slave;
方法二:使用mysqldump,通用,但是慢:
在Master服務(wù)器上備份數(shù)據(jù)庫:
mysqldump --all-databases --master-data >apply_slave.sql把備份文件dbdump.db傳到Slave服務(wù)器上,恢復(fù)數(shù)據(jù)庫:
mysql <apply_slave.sql在Slave服務(wù)器上開啟slave模式,在mysql中執(zhí)行:
change master to master_host='<Master IP地址>', master_user='<用戶名>', master_password='<密碼>';start slave;
- 方法一:MyISAM格式可以直接拷貝,速度快:
維護(hù)
Slave顯示同步狀態(tài):
show slave status\G;顯示進(jìn)程列表:
show processlist\G;Master顯示正在同步的Slaves:
show slave hosts;Master顯示最新binlog位置:
show master status;
MySQL 5.5 - 5.7的改進(jìn)
- MySQL 5.5的主從復(fù)制是單線程的,性能受限。
- MySQL 5.6的不同數(shù)據(jù)庫可以并行,單個數(shù)據(jù)庫還是順序執(zhí)行的。
- MySQL 5.7不再受限制,所有Master數(shù)據(jù)庫并行執(zhí)行的事務(wù),Slave也可以并行執(zhí)行。
- MySQL 5.7的Slave還支持從多個Master同步數(shù)據(jù)庫。
轉(zhuǎn)載于:https://www.cnblogs.com/tinyfish/p/5177490.html
總結(jié)
以上是生活随笔為你收集整理的MySQL 5.5主从复制(Replication)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大叔也说Xamarin~Android篇
- 下一篇: JSONP跨域的原理解析及其实现介绍