https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html
yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
yum install percona-xtrabackup-24 -y
innobackupex --user=root --password=cXXX --defaults-file=/etc/my.cnf /data/backup #备份
innobackupex --apply-log /data/backup/ #日志回滚
innobackupex --copy-back --defaults-file=/etc/my.cnf /data/backup #备份恢复
mysql> reset slave; #清除从连接信息
mysql> show slave status\G; #再查看从状态,可以看到IO和SQL线程都为NO
mysql> drop database weibo; #删除weibo库,weibo为测试数据库
innobackupex --user=root --password=123 ./
生成一个以时间为命名的备份目录:2018-06-19_16-11-01
3. 从库上把MySQL服务停掉,删除datadir目录,
sudo rm -rf/var/lib/mysql/
innobackupex --apply-log /data/backup/ #日志回滚
innobackupex --copy-back --defaults-file=/etc/my.cnf /data/backup #备份恢复
sudo chown mysql.mysql-R /var/lib/mysql
sudo /etc/init.d/mysql start
4. 在主库创建test_tb2表,模拟数据库新增数据
mysql> create tabletest_tb2(id int,name varchar(30));
5. 从备份目录中xtrabackup_info文件获取到binlog和pos位置
cat/var/lib/mysql/xtrabackup_info
binlog_pos = filename'mysql-bin.000001', position 429 #这个位置
mysql> change masterto master_host='192.168.18.212',
-> master_password='sync',
-> master_log_file='mysql-bin.000001',
mysql> show slavestatus\G;
***************************1. row ***************************
可以看到IO和SQL线程均为YES,说明主从配置成功。
+---------------------------+
+---------------------------+
发现刚才模拟创建的test_tb2表已经同步过来。
#################简化####################################################
innobackupex --user=root --password=cXXX --defaults-file=/etc/my.cnf /data/backup #备份
innobackupex --apply-log /data/backup/ #日志回滚
注意配置文件中的path 和/data/backup 不能相同。
innobackupex --copy-back --defaults-file=/etc/my.cnf /data/backup #备份恢复
mysql> CHANGE MASTER TO MASTER_HOST=‘xxx’,MASTER_USER='replicant',MASTER_PASSWORD=‘xxx’, MASTER_LOG_FILE='bin.000050', MASTER_LOG_POS=191;ERROR 1776 (HY000): Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.
mysql> change master to master_auto_position=0;
Query OK, 0 rows affected (0.34 sec)
mysql> CHANGE MASTER TO MASTER_HOST=‘xxx’,MASTER_USER='replicant',MASTER_PASSWORD=‘xxx’, MASTER_LOG_FILE='bin.000050', MASTER_LOG_POS=191;
Query OK, 0 rows affected, 2 warnings (0.51 sec)
Query OK, 0 rows affected (0.08 sec)
mysql> SHOW SLAVE STATUS \G
change master to master_host='10.21.8.57',master_user='mysqlsync',master_password='12345678',MASTER_AUTO_POSITION=1;
/data/bin/xtrabackup/bin/innobackupex --user=root --password=cXXX --defaults-file=/etc/my.cnf /data/backup/full/
/data/bin/xtrabackup/bin/innobackupex --apply-log /data/backup/2014-01-24_11-36-53/
/data/bin/xtrabackup/bin/innobackupex --copy-back --defaults-file=/etc/my.cnf /data/backup/2014-01-24_11-36-53/
chown -R mysql:mysql /data/mysqldata/
innobackupex --defaults-file=/etc/my.cnf --user=backup --password='bc.123456' --socket=/var/lib/mysql/mysql.sock --slave-info --safe-slave-backup --no-timestamp /backup/full
备份完成后,还不能用于恢复,一些未提交的事物需要恢复,需要恢复redo logo的数据,确保数据一致
[root@dg backup]\# innobackupex --apply-log /backup/full
[root@dg backup]\# scp -r full/ dgt:/backup/