1、安装


从官方下载 http://www.percona.com/downloads/XtraBackup/

可选择编译版与二进制版,二进制版仍需安装依赖perl-DBD-MySQL

yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr bison libtool ncurses5-devel
yum install perl-DBD-MySQL


编译安装

cmake -DBUILD_CONFIG=xtrabackup_release && make -j4
make install


2、备份


使用前需要设置环境变量

PATH=/usr/local/xtrabackup/bin:$PATH
export PATH

备份命令

innobackupex --defaults-file=/data/server/mysql_5.5.39/my.cnf --user=root --password=123456 --host=127.0.0.1 /data/data/mysqlbak


注意参数 defaults-file 必须放在第一位,为原始数据库配置文件。innobackupex通过配置文件寻找mysql的data目录。

/data/data/mysqlbak为备份目标目录。

备份完成后,记录主从信息(屏幕和文件均有输出)。

MySQL binlog position: filename 'mysql-bin.000284', position 827024292


数据导出完成后,使用二进制文件修复

innobackupex --apply-log /data/data/mysqlbak/2015-02-05_14-02-44/


3、建立主从


根据业务需要可以降低事务优先级,配置只读(只限制非super权限账号)

# 设定默认的事务隔离级别.可用的级别如下:从左到右,由低到高
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
#可选设置,降低事务隔离级别
#transaction_isolation = READ-COMMITTED
##从机设置
relay-log=relay-bin
 
#可选设置 只读
#read_only
server-id=2


在主机上执行命令,确保主机serverid已经设置(可选)

#SHOW variables LIKE 'server_id';
#SET GLOBAL server_id=1;


复制配置文件,修改data路径,端口等信息,启动从机数据库

/data/server/mysql_5.5.39/bin/mysqld --defaults-file=/data/data/mysqlbak/2015-02-05_14-02-44/my.cnf --user=mysql  &


设置主从

CHANGE MASTER TO
MASTER_HOST='127.0.0.1',
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000284',
MASTER_PORT=3336,
MASTER_LOG_POS=827024292;
 
START SLAVE;
SHOW SLAVE STATUS\G


验证:从机出现两个yes,并且seconds_behind_master数值为0时,同步完成。


4、参考文献



 


5、复制从库


如果复制一个从库,连接主库,备份命令添加参数 --slave-info


innobackupex --defaults-file=/data/server/mysql_5.5.39/my.cnf  --slave-info --user=root  --host=127.0.0.1 /data/data/mysqlbak


查看xtrabackup_slave_info,得出连接主库的信息

# cat xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=362