前面講過mysql熱備份,下面小編再來給各位同學(xué)介紹一下在CENTOS6.3中MYSQL主從數(shù)據(jù)庫備份配置的方 法,希望此教程對各位同學(xué)會有所幫助.
MySQL主主互備結(jié)構(gòu)是基于mysql增量日志基礎(chǔ)上的,區(qū)別于主從復(fù)制結(jié)構(gòu),在主主復(fù)制結(jié)構(gòu)中,兩臺服務(wù)器的任何一臺上面的數(shù)據(jù)庫存發(fā)生了改變都會同步到另一臺服務(wù)器上,這個改變是基于sql語句的改變,如果刪除系統(tǒng)數(shù)據(jù)庫源文件或刪除后新創(chuàng)建同名MYSQL表實(shí)現(xiàn)同步則無效,這樣兩臺服務(wù)器互為主從,并且都能向外提供服務(wù),這就比使用主從復(fù)制具有更好的性能.
接下來我將使用兩個相同的環(huán)境來實(shí)現(xiàn)這個效果:
系統(tǒng)環(huán)境:centos6.3
數(shù)據(jù)庫:mysql-5.6.10
注:在做此項(xiàng)配置之前首先要保證數(shù)據(jù)庫當(dāng)前無任何變動,建議同步前關(guān)閉WEB服務(wù)等影響數(shù)據(jù)庫變動的服務(wù) .
安裝配置mysql(略)
1.主1 mysql配置:(192.168.7.201)
刪除之前遺留bin日志:# rm -rf /usr/local/mysql/log/bin*
修改mysql配置文件:# vi /etc/my.cnf
添加:
- -----------------
- # Replication Master Server 1
- # bin日志路徑
- log-bin = /usr/local/mysql/log/bin.log
- # 服務(wù)器ID號
- server-id = 1
- # 忽略mysql數(shù)據(jù)庫復(fù)制
- binlog-ignore-db=mysql
- # 每次增長2
- auto-increment-increment = 2
- # 設(shè)置自動增長的字段的偏移量,即初始值為2
- auto-increment-offset = 1
- ------------
- # mysql -u root -p123456
在主1上為主2添加同步帳號:> grant replication slave on *.* to 'slave'@'192.168.7.249' identified by '123456';
將主1的數(shù)據(jù)庫表全部備份,并發(fā)送到主2服務(wù)器上,代碼如下:
- # /usr/local/mysql/bin/mysqldump -u root -p123456 --opt --skip-lock-tables --flush-logs
- --all-database > /root/allbak.sql
- # cd ~
- # scp allbak.sql root@192.168.7.249:/root
重啟服務(wù)
- # service mysqld restart
- # mysql -u root -p123456;
配置連接到主2服務(wù)器,注意這步一定要在主2添加賬戶后執(zhí)行,代碼如下:
- > stop slave;
- > change master to
- master_host='192.168.7.249',master_user='slave',master_password='123456';
- > start slave;
2.主2 mysql配置(192.168.7.249)
刪除之前遺留bin日志:# rm -rf /usr/local/mysql/log/bin*
修改mysql配置文件:# vi /etc/my.cnf
添加:
- --------------------
- # Replication Master Server 2
- # bin日志路徑
- log-bin = /usr/local/mysql/log/bin.log
- server-id=2
- # 忽略mysql數(shù)據(jù)庫復(fù)制
- replicate-ignore-db=mysql
- # 每次增長2
- auto-increment-increment = 2
- # 設(shè)置自動增長的字段的偏移量,即初始值為2
- auto-increment-offset = 2
- ---------------------
- # mysql -u root -p123456
在主2上為主1添加同步帳號:> grant replication slave on *.* to 'slave'@'192.168.7.201' identified by '123456';
恢復(fù)主1的數(shù)據(jù)庫到主2:#/usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql
重啟服務(wù):
# service mysqld restart
# mysql -u root -p123456;
配置連接到主1服務(wù)器,代碼如下:
- > stop slave;
- > change master to
- master_host='192.168.7.201',master_user='slave',master_password='123456';
- > start slave;
最后分別登陸兩臺服務(wù)器mysql后臺查看主主備份連接狀態(tài):
# mysql -u root -p123456;
> show slave statusG;
搜索這三行,如下則主主互備配置成功,代碼如下:
- Slave_IO_State: Waiting for master to send event
- Slave_IO_Running: Yes //Vevb.com
- Slave_SQL_Running: Yes
當(dāng)主1的數(shù)據(jù)庫增加,刪除,改變數(shù)據(jù)時,主2也會同步更新.
當(dāng)主2的數(shù)據(jù)庫增加,刪除,改變數(shù)據(jù)時,主1也會同步更新.
這樣就可以配合keepalived實(shí)現(xiàn)數(shù)據(jù)庫雙機(jī)熱備+數(shù)據(jù)同步互備,大大提高了MYSQL的可靠性和安全性.
新聞熱點(diǎn)
疑難解答
圖片精選