XtraBackup做mysql主从同步

一、背景:

线上一个主库压力比较大,所以增加一个从库,但是不能重启或者停止主库的正常运行,不能锁库锁表影响业务的正常运行。所以这里想到了XtraBackup

二、XtraBackup介绍:

Xtrabackup的优点:

1、备份完成快速、可靠

2、备份期间不间断的事务处理

3、节省磁盘空间和网络带宽

4、自动备份验证

5、提高正常运行时间由于更快的恢复时间

备份INNODB引擎的数据库不会锁库锁表,但是备份MyISAM的表还是会锁的,还支持增量备份。

官方地址:

https://www.percona.com/

三、环境说明

系统版本:CentOS Linux release 7.0.1406 (Core)

内核版本:3.10.0-123.9.3.el7.x86_64

?mysql版本:5.6.26

xtrabackup版本:percona-xtrabackup-2.2.9-5067.el7.x86_64.rpm

四、安装XtraBackup

安装在主库上

建议大家使用rpm方式安装,网上很多文档都是编译安装,编译安装费时费力,我这次做主从刚开始使用编译安装,发现编译时服务器资源被耗尽都无法ssh,导致服务器无法处理请求。所以最后选择了rpm方式安装,这种方式安装非常快。

# yum install perl-Time-HiRes
# yum install perl-DBD-MySQL -y
#  yum install perl-Digest-MD5 -y
# wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/redhat/7/x86_64/percona-xtrabackup-2.2.9-5067.el7.x86_64.rpm

# rpm -ivh percona-xtrabackup-2.2.9-5067.el7.x86_64.rpm

五、主库主从配置

1.主库配置/etc/my.cnf

增加server-id 和 bin-log
# vim /etc/my.cnf
server-id = 128
log-bin = mysql-bin  

2.主库配置授权账号

mysql> grant replication slave on *.* to [email protected]‘192.168.199.183‘ identified by ‘123‘;
mysql> flush privileges; 

3.手动设置主库server-id和log-bin 参数

set global server_id=128
因为这两个参数是动态参数,不用重启主库也可以生效
如果你的主库已经设置这两个参数,请忽略这一步操作

六、从库主从配置

从库安装步骤略

1.从库配置/etc/my.cnf

增加server-id 和 bin-log
# vim /etc/my.cnf
server-id = 129
#如果需要在从库上做bin-log备份可以添加如下参数
log-bin = mysql-bin
log-slave-updates = 1
expire-logs-days=10

七、备份主库数据

1.主库机器上创建备份目录

# mkdir -p /backup/full_data

2.执行全库备份

2.1.备份

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123    --socket=/tmp/mysql.sock    /data/backup/full_data
PS:备份完成后,会在/backup/full_data/目录下生成一个时间点的目录,这里是2016-07-14_05-19-52。你也可以加一个--no-timestamp参数不产生这个目录,直接备份到/backup/full_data/目录下

2.2.重放redo log

#下面preparing,undo撤销未提交的事务,重放redo log
# innobackupex  --defaults-file=/etc/my.cnf  --user=root    --password=123  --apply-log   --socket=/tmp/mysql.sock   /data/backup/full_data/2016-07-14_05-19-52

ps:1、ls -l  /data/backup/full_data/2016-07-14_05-19-52/查看,你发现xtrabackup会把你数据库datadir下的所有数据 文件都复制过来还新增了5个xtrabackup_开头的文件,我们关心的是xtrabackup_binlog_info这个文件,因为这个文件里面记 录了你做从库需要change到主库的binlog的位置和pos点

2、如果只想备份一个库,加“--include=navy”指定库名即可, “--databases=navy”不好使。

八、恢复数据到从库

1.停止从库

# /etc/init.d/mysqld stop

2.把主库备份文件拷贝到从库机器

# scp -ap /data/backup/full_data/2016-07-14_05-19-52   [email protected]:/data/mysql/

3.修改恢复文件权限

# chown -R mysql:mysql /data/mysql/  

4.启动数据库

# /etc/init.d/mysqld start

5.确认数据是否恢复成功

登录从库,执行show databases;

6.确认同步的位置点

在从库上或者主库上都可以查看该信息,我们是在从库上查看

# cat /data/mysql/xtrabackup_binlog_info
mysql-bin.000016        4542174

九、开始主从同步

1.配置从库 主从配置

#登录从库并执行

mysql > CHANGE MASTER TO   MASTER_HOST=‘192.168.199.182‘,MASTER_USER=‘rep‘,  MASTER_PASSWORD=‘123‘,MASTER_LOG_FILE=‘mysql-bin.000016‘, MASTER_LOG_POS=4542174;

2.开始同步

mysql> start slave;

3.查看同步状态

mysql> show slave status\G
时间: 2024-10-28 10:51:15

XtraBackup做mysql主从同步的相关文章

利用XtraBackup做mysql不停机重做主从复制

不停机做mysql主从同步,可以使用mysqldump,但是这个效率比较低,利用XtraBackup来实现这个,效率比较高! 一 xtrabackup安装: yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm 安装libenv: wget ftp://rpmfind.net/linu

使用XtraBackup热备份搭建MySQL主从同步

使用XtraBackup热备份搭建MySQL主从同步 1 背景描述 生产环境一台MYSQL主库,没有搭建从库,急需搭建从库 每天已有innobackupex备份 2 方案 利用innobackupex全备和增量备份搭建MYSQL主库 3 数据库版本 主库:mysql 5.5.54 从库:mysql 5.7.25(为了以后升级) 4 搭建步骤 搭建的步骤如下图所示: (1)将数据库备份拷贝到从库上 (2)在从库上安装好MYSQL数据库,安装过程略 (3)停止从库的MYSQL实例,删除从库数据库里面

windows下的mysql主从同步

mysql主从同步: 1.为什么要主从同步? 在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一.尤其是在大规模系统中,数据库集群已经成为必备的配置之一.集群的好处主要有:查询负载.数据库复制备份等.其中Master负责写操作的负载,也就是说一切写的操作都在Master上进行,而读的操作则分摊到Slave上进行.这样一来的可以大大提高读取的效率.写操作涉及到锁的问题,不管是行锁还是表锁还是块锁,都是比较降低系统执行效率的事情.我们这样的分离是把写操作集中在一个节点上,而读操作其其他

mysql主从同步中出现的问题梳理

之前部署了Mysql主从复制环境(MySQL复制环境(主从/主主)部署总结性梳理),在mysql同步过程中会出现很多问题,导致数据同步异常.以下梳理了几种主从同步中可能存在的问题:1)slave运行过慢不能与master同步,也就是MySQL数据库主从同步延迟MySQL数据库slave服务器延迟的现象是非常普遍的,MySQL复制允许从机进行SELECT操作,但是在实际线上环境下,由于从机延迟的关系,很难将读取操作转向到从机.这就导致了有了以下一些潜规则:"实时性要求不高的读取操作可以放到slav

企业生产MySQL主从同步配置

MySQL主从同步配置 前言:测试环境 一台mysql多个实例 主机IP地址 10.0.0.52 Master   3306 Salve    3307 一.主库要开启binlog服务 1. 1修改配置文件3306/my.cnf [[email protected] ~]# egrep "log-bin|server-id" /data/3306/my.cnf   log-bin = /data/3306/mysql-bin server-id = 1 1. 2查看主库有没有开启bin

mysql 主从同步实验细解

mysql  主从同步实验细解 一.实验环境 实验环境 192.168.9.108 为master 192.168.9.109 为slave 数据库版本:version              5.1.73 安装方式:采用的yum 安装 源为163的源 系统版本:centos 6.5 1.查看系统版本 [[email protected] ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m 二.实验准备 1.安装my

mysql 主从同步

第一章        安装mysql mysql安装包: MySQL-server-5.6.11-1.rhel5.x86_64.rpm MySQL-client-5.6.11-1.rhel5.x86_64.rpm 安装mysql: [[email protected] software]# rpm  -ivh MySQL-server-5.6.11-1.rhel5.x86_64.rpm Preparing...                 ##########################

MySQL主从同步实验

MySQL的主从复制方案,是数据的传输.只不过MySQL无需借助第三方工具,而是其自身同步复制的功能,另外一点,MySQL的主从复制并不是磁盘上直接同步,而是逻辑binlog日志同步到本地再应用执行的过程. 一.MySQL主从同步的简要操作过程: 1)从库开启两个线程,分别是IO线程和SQL线程,而主库只开启有一个IO线程 2)在从库上配置连接主库的IP地址.端口号.用同步的用户名.密码.准备更新的二进制文件名字.和准备更新的位置点(pos点,即从那个位置点开始更新) 3)在启动slave-id

mysql主从同步中应注意的问题

MYSQL主从同步的作用 (1) 数据分布(2) 负载平衡(load balancing)(3) 备份(4) 高可用性(high availability)和容错 MYSQL主从同步的原理 关于MYSQL的主从同步,最主要的是要了解MYSQL的主从同步是如何工作的也即主从同步的原理,通过下图能很明白的指导其工作的过程: 大致描述一下过程:从服务器的IO线程从主服务器获取二进制日志,并在本地保存为中继日志,然后通过SQL线程来在从上执行中继日志中的内容,从而使从库和主库保持一致.主从同步的详细过程