Xtrabackup 是percona公司的開源項目,用以實現相似innodb官方的熱備份工具InnoDB Hot Backup的功能,可以很是快速地備份與恢復MySQL數據庫。 Xtrabackup中包含兩個工具:html
xtrabackup是用於熱備份innodb, xtradb表中數據的工具,不能備份其餘類型的表,也不能備份數據表結構;mysql
innobackupex是將xtrabackup進行封裝的perl腳本,提供了備份myisam表的能力。sql
1、安裝數據庫
1.配置Yum源centos
# Name: Percona RPM Repositorybash
# URL: http://www.percona.com/percona-lab.html服務器
[percona]app
name = CentOS $releasever - Perconasocket
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/ide
enabled = 1
#gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 0
2.安裝
yum install xtrabackup -y
2、配置主從
在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 --socket=/data/mysqldb/mysql.mysql --user=root --password='' /backup/
若是報錯:
InnoDB: The error means the system cannot find the path specified.
InnoDB: File ./ib_logfile0: 'open' returned OS error 71. Cannot continue operation
innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2622.
修改my.cnf增長:
datadir=/data/mysqldb
basedir=/usr/local/mysql/
把備份好的文件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;