使用XtraBackup進行MySQL不鎖表主從複製
Xtrabackup 是percona公司的開源項目,用以實作類別似innodb官方的熱備份工具InnoDB Hot Backup的功能,能夠非常快速地備份與恢複MySQL資料庫。 Xtrabackup中包含兩個工具:
xtrabackup是用於熱備份innodb, xtradb表中資料的工具,不能備份其他類型的表,也不能備份資料表結構;
innobackupex是將xtrabackup進行封裝的perl指令碼,提供了備份myisam表的能力。
一、安裝
1.配置Yum源
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
2.安裝
yum install xtrabackup -y
二、配置主從
在Master(主伺服器)上建立主從備份所使用的帳號
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by '123456';
修改Master設定檔,並重啟Mysql服務
[mysqld]
thread_concurrency = 32
long_query_time= 2
slow-query-log = on
slow-query-log-file = /home/mysql/logs/mysql-slow.log
skip-name-resolve
server_id=205
binlog-ignore-db=mysql
log-bin=ddsc-mysql-slave1-bin
binlog_cache_size = 1M
expire_logs_days=7
skip-name-resolve
relay_log=/data/mysqldb/ddsc-mysql-relay-bin
slave-skip-errors=all
log_slave_updates=1
log-bin=ddsc-mysql-bin
binlog_format=mixed
修改Slave設定檔,並重啟Mysql服務。配置內容可參考主設定檔,注意:server_id不能一致。
使用xtrabackup對主庫進行備份。
innobackupex --defaults-file=/etc/my.cnf --socke=/data/mysqldb/mysql.mysql --user=root --password='' /backup/
把備份好的檔案Copy到Slave端。
scp -r 2016-08-08_13-53-57/ root@192.168.3.225:/tmp/
一般情況下,這個備份是不能用於恢複的,因為備份的資料中可能會包含尚未提交的事務或已經提交但尚未同步至資料檔案中的事務。因此,此時資料檔案處於不一致的狀態,我們現在就是要通過復原未提交的事務及同步已經提交的事務至資料檔案也使得資料檔案處於一致性狀態。
innobackupex -apply-log /tmp/2016-08-08_13-53-57/
恢複資料
先停止mysqld服務,然後清空資料檔案目錄,恢複完成後再設定許可權
service mysqld stop
mv /data/mysqldb /data/mysqldb_old
mkdir -p /data/mysqldb
innobackupex --copy-back /tmp/2016-08-08_13-53-57/
chown -R mysql.mysql /data/mysql/data
service mysqld start
8.查看binlog記錄檔的位置值,做主從同步:
cat /tmp/2016-08-08_13-53-57/xtrabackup_binlog_info
ddsc-mysql-bin.00001912476 #這兩個數字是用來做主從的必備
9.在slave機器上做主從相關操作:
CHANGE MASTER TO
MASTER_HOST='192.168.1.xxx',
MASTER_USER='rep',
MASTER_PASSWORD='xxxxxx',
MASTER_PORT=3306,
MASTER_LOG_FILE='ddsc-mysql-bin.000019',
MASTER_LOG_POS=12476;
10.啟動從伺服器
start slave;
MySQL管理之使用XtraBackup進行熱備
MySQL開源備份工具Xtrabackup備份部署
MySQL Xtrabackup備份和恢複
用XtraBackup實現MySQL的主從複製快速部署【主不鎖表】
安裝和使用 Percona 推出的 Xtrabackup 備份 MySQL
XtraBackup 的詳細介紹:請點這裡
XtraBackup 的:請點這裡
本文永久更新連結地址: