利用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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章