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、参考文献
http://rfyiamcool.blog.51cto.com/1030776/1016636
https://www.centos.bz/tag/xtrabackup/
http://www.percona.com/doc/percona-xtrabackup/2.2/
http://www.percona.com/doc/percona-xtrabackup/2.2/howtos/setting_up_replication.html#replication-howto
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