天天看點

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

<a href="http://s3.51cto.com/wyfs02/M01/71/59/wKioL1XMONuBBE1oAADLxPm0RLc939.jpg" target="_blank"></a>

三.在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 &amp;

如果沒有異常報錯,就關閉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狀态:

本文轉自 shine_forever 51CTO部落格,原文連結:http://blog.51cto.com/shineforever/1684335

繼續閱讀