利用xtraBackup實現不停master服務做主從同步


MySQL主從同步原理:

MySQL主從同步是在MySQL主從復制(Master-Slave Replication)基礎上實現的,通過設置在Master MySQL上的binlog(使其處於打開狀態),Slave MySQL上通過一個I/O線程從Master MySQL上讀取binlog,然后傳輸到Slave MySQL的中繼日志中,然后Slave MySQL的SQL線程從中繼日志中讀取中繼日志,然后應用到Slave MySQL的數據庫中。這樣實現了主從數據同步功能。

 

XtraBackup備份原理:

innobackupex在后台線程不斷追蹤InnoDB的日志文件,然后復制InnoDB的數據文件。數據文件復制完成之后,日志的復制線程也會結束。這樣就得到了不在同一時間點的數據副本和開始備份以后的事務日志。完成上面的步驟之后,就可以使用InnoDB崩潰恢復代碼執行事務日志(redo log),以達到數據的一致性。

 

備份分為兩個過程:

backup,備份階段,追蹤事務日志和復制數據文件(物理備份)。

preparing,重放事務日志,使所有的數據處於同一個時間點,達到一致性狀態。

 

XtraBackup的優點:

可以快速可靠的完成數據備份(復制數據文件和追蹤事務日志)

數據備份過程中不會中斷事務的處理(熱備份)

節約磁盤空間和網絡帶寬

自動完成備份鑒定

因更快的恢復時間而提高在線時間

 

 

一 xtrabackup安裝:

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL

rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm

 

軟件下載地址:https://www.percona.com/software/mysql-database/percona-xtrabackup

 

二 核對mysql的版本:

利用xtrabackup做全備和恢復的,Mysql的版本最好一致!

檢查mysql版本:

 /webser/mysql55/bin/mysql -V

/webser/mysql55/bin/mysql  Ver 14.14 Distrib 5.5.21, for Linux (x86_64) using readline 5.1

wKioL1XMONuBBE1oAADLxPm0RLc939.jpg

 

 

三.在master服務器上在線備份數據庫:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf --user=root --password=xxxx  /tmp/backup/

 

PS:/tmp/backup/ 為備份目錄;

然后通過scp方式把master上

 

四.slave機器上操作;

1)關閉mysql服務;

然后清空mysql數據目錄下文件,例如本機mysql的數據目錄是:/webser/mysql55/var/ 

 

2)開始恢復數據

假設備份文件的路徑在:/webser/2015-08-12_13-54-56

 

恢復日志文件:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf --user=root --password=xxxx --apply-log /tmp/backup/2015-08-12_13-49-32/

恢復數據文件:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf --user=root --password=xxxx --copy-back /tmp/backup/2015-08-12_13-49-32/

 

以上操作,請務必按照順序執行,操作順序顛倒,會引起mysql服務器啟動不了!

 

3)修改數據目錄權限:

chown -R mysql:mysql /webser/mysql55/var  

 

4)安全方式啟動mysql,查看是否有異常;

/webser/mysql55/bin/mysqld_safe --defaults-file=/webser/mysql55/etc/my.cnf &

如果沒有異常報錯,就關閉mysql

 /webser/mysql55/bin/mysqladmin -uroot -p shutdown

 

5)查看binlog日志文件的位置值,做主從同步:

cat /tmp/backup/2015-08-12_13-49-32/xtrabackup_binlog_info 

wwwmaster.000458    1022022953

 

6)在slave機器上做主從相關操作:

CHANGE MASTER TO

MASTER_HOST='192.168.1.xxx',

MASTER_USER='rep',

MASTER_PASSWORD='xxxxxx',

MASTER_PORT=3306,

MASTER_LOG_FILE='wwwmaster.000458',

MASTER_LOG_POS=1022022953;

 

啟動主從同步:

start slave;

 

查看slave狀態:

wKiom1XMODeyRvEmAARsOvTBEKo632.jpg

 


免責聲明!

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



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