XtraBackup做mysql主从同步
一、背景:
線上一個(gè)主庫(kù)壓力比較大,所以增加一個(gè)從庫(kù),但是不能重啟或者停止主庫(kù)的正常運(yùn)行,不能鎖庫(kù)鎖表影響業(yè)務(wù)的正常運(yùn)行。所以這里想到了XtraBackup
二、XtraBackup介紹:
Xtrabackup的優(yōu)點(diǎn): 1、備份完成快速、可靠 2、備份期間不間斷的事務(wù)處理 3、節(jié)省磁盤空間和網(wǎng)絡(luò)帶寬 4、自動(dòng)備份驗(yàn)證 5、提高正常運(yùn)行時(shí)間由于更快的恢復(fù)時(shí)間 備份INNODB引擎的數(shù)據(jù)庫(kù)不會(huì)鎖庫(kù)鎖表,但是備份MyISAM的表還是會(huì)鎖的,還支持增量備份。官方地址: https://www.percona.com/
三、環(huán)境說明
系統(tǒng)版本:CentOS Linux release 7.0.1406 (Core)? 內(nèi)核版本:3.10.0-123.9.3.el7.x86_64 ?mysql版本:5.6.26 xtrabackup版本:percona-xtrabackup-2.2.9-5067.el7.x86_64.rpm四、安裝XtraBackup
安裝在主庫(kù)上 建議大家使用rpm方式安裝,網(wǎng)上很多文檔都是編譯安裝,編譯安裝費(fèi)時(shí)費(fèi)力,我這次做主從剛開始使用編譯安裝,發(fā)現(xiàn)編譯時(shí)服務(wù)器資源被耗盡都無法ssh,導(dǎo)致服務(wù)器無法處理請(qǐng)求。所以最后選擇了rpm方式安裝,這種方式安裝非常快。 # yum install perl-Time-HiRes # yum install perl-DBD-MySQL -y # yum install perl-Digest-MD5 -y # wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/redhat/7/x86_64/percona-xtrabackup-2.2.9-5067.el7.x86_64.rpm# rpm -ivh percona-xtrabackup-2.2.9-5067.el7.x86_64.rpm五、主庫(kù)主從配置
1.主庫(kù)配置/etc/my.cnf
增加server-id 和 bin-log # vim /etc/my.cnf server-id = 128 log-bin = mysql-bin2.主庫(kù)配置授權(quán)賬號(hào)
mysql> grant replication slave on *.* to rep@'192.168.199.183' identified by '123'; mysql> flush privileges;3.手動(dòng)設(shè)置主庫(kù)server-id和log-bin 參數(shù)
set global server_id=128 因?yàn)檫@兩個(gè)參數(shù)是動(dòng)態(tài)參數(shù),不用重啟主庫(kù)也可以生效 如果你的主庫(kù)已經(jīng)設(shè)置這兩個(gè)參數(shù),請(qǐng)忽略這一步操作六、從庫(kù)主從配置
從庫(kù)安裝步驟略
1.從庫(kù)配置/etc/my.cnf
增加server-id 和 bin-log # vim /etc/my.cnf server-id = 129 #如果需要在從庫(kù)上做bin-log備份可以添加如下參數(shù) log-bin = mysql-bin log-slave-updates = 1 expire-logs-days=10七、備份主庫(kù)數(shù)據(jù)
1.主庫(kù)機(jī)器上創(chuàng)建備份目錄
# mkdir -p /backup/full_data2.執(zhí)行全庫(kù)備份
2.1.備份
# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --socket=/tmp/mysql.sock /data/backup/full_data PS:備份完成后,會(huì)在/backup/full_data/目錄下生成一個(gè)時(shí)間點(diǎn)的目錄,這里是2016-07-14_05-19-52。你也可以加一個(gè)--no-timestamp參數(shù)不產(chǎn)生這個(gè)目錄,直接備份到/backup/full_data/目錄下2.2.重放redo log
#下面preparing,undo撤銷未提交的事務(wù),重放redo log # innobackupex --defaults-file=/etc/my.cnf --user=root --password=123 --apply-log --socket=/tmp/mysql.sock /data/backup/full_data/2016-07-14_05-19-52ps:1、ls -l ?/data/backup/full_data/2016-07-14_05-19-52/查看,你發(fā)現(xiàn)xtrabackup會(huì)把你數(shù)據(jù)庫(kù)datadir下的所有數(shù)據(jù) 文件都復(fù)制過來還新增了5個(gè)xtrabackup_開頭的文件,我們關(guān)心的是xtrabackup_binlog_info這個(gè)文件,因?yàn)檫@個(gè)文件里面記 錄了你做從庫(kù)需要change到主庫(kù)的binlog的位置和pos點(diǎn)
?
2、如果只想備份一個(gè)庫(kù),加“--include=navy”指定庫(kù)名即可, “--databases=navy”不好使。
八、恢復(fù)數(shù)據(jù)到從庫(kù)
1.停止從庫(kù)
# /etc/init.d/mysqld stop2.把主庫(kù)備份文件拷貝到從庫(kù)機(jī)器
# scp -ap /data/backup/full_data/2016-07-14_05-19-52 root@192.168.11.129:/data/mysql/3.修改恢復(fù)文件權(quán)限
# chown -R mysql:mysql /data/mysql/4.啟動(dòng)數(shù)據(jù)庫(kù)
# /etc/init.d/mysqld start5.確認(rèn)數(shù)據(jù)是否恢復(fù)成功
登錄從庫(kù),執(zhí)行show databases;6.確認(rèn)同步的位置點(diǎn)
在從庫(kù)上或者主庫(kù)上都可以查看該信息,我們是在從庫(kù)上查看
# cat /data/mysql/xtrabackup_binlog_info mysql-bin.000016 4542174九、開始主從同步
1.配置從庫(kù) 主從配置?
#登錄從庫(kù)并執(zhí)行
mysql > CHANGE MASTER TO MASTER_HOST='192.168.199.182',MASTER_USER='rep', MASTER_PASSWORD='123',MASTER_LOG_FILE='mysql-bin.000016', MASTER_LOG_POS=4542174;2.開始同步
mysql> start slave;3.查看同步狀態(tài)
mysql> show slave status\G?
轉(zhuǎn)載于:https://www.cnblogs.com/pangguoping/p/5746087.html
總結(jié)
以上是生活随笔為你收集整理的XtraBackup做mysql主从同步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS中避免命名冲突的三个方法
- 下一篇: sql server 常用的扩展存储过程