一、背景:

线上一个主库压力比较大,所以增加一个从库,但是不能重启或者停止主库的正常运行,不能锁库锁表影响业务的正常运行。所以这里想到了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 rep@'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   root@192.168.11.129:/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

转载于:https://www.cnblogs.com/pangguoping/p/5746087.html

XtraBackup做mysql主从同步相关推荐

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

    不停机做mysql主从同步,可以使用mysqldump,但是这个效率比较低,利用XtraBackup来实现这个,效率比较高! 一 xtrabackup安装: yum -y install perl p ...

  2. mysql主从同步从库上Slave_IO_Running: Connecting问题

    mysql主从同步从库上Slave_IO_Running: Connecting问题 一.在做主从同步时遇到的问题 数据库主从问题从库上Slave_IO_Running: Connecting 在做m ...

  3. 项目性能优化(MySQL读写分离、MySQL主从同步、Django实现MySQL读写分离)

    当项目中数据库表越来越多,数据量也逐渐增多时,需要做数据库的安全和性能的优化.对于数据库的优化,可以选择使用MySQL读写分离实现. 1.MySQL主从同步 1.主从同步机制 1.1.主从同步介绍和优 ...

  4. MySQL主从同步问题集

    http://blog.chinaunix.net/uid-8786588-id-3771613.html 在InnoDB引擎下发现,Mysql的主从热备存在数据不一致的问题,一些数据没有成功同步到备 ...

  5. mysql主从同步linux,linux中部署mysql主从同步示例详解(绝对经典,看了必会)

    准备两台服务器并安装MySQL5.7 master服务器 192.168.254.132 slave服务器 192.168.254.136 确保两台服务器安装的mysql版本一致,本测试使用的是mys ...

  6. 基于mysql主从同步的proxy读写分离

    mysql-proxy 简介 MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测.分析或改变它们的通信.它使用灵活,没有限制,常见的用途包括:负载 ...

  7. mysql 主从同步不一致_涨知识!MySQL 主从同步原理原来是这样的

    什么是 MySQL 主从同步 当 master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 主从同步有什么好处 水平扩展数据库的负载能力 容错,高可用.Failover/Hig ...

  8. DBA(三):MySQL主从同步、复制模式

    MySQL主从同步 主从同步概述 MySQL主从同步 主从同步介绍 实现数据自动同步的服务结构 主服务器:接受客户端访问连接 从服务器:自动同步主服务器的数据 主从同步的工作原理 主库有1个线程叫du ...

  9. mysql主从同步_utf8_MySQL主从同步

    MySQL主从同步 特别提醒: 做主从前最好在数据库尚未创建的时候做,如果已经创建了.可以将原来数据导出,等建立好主从以后在主上面导入即可让数据同步 1.环境 主数据库  IP:10.5.100.15 ...

最新文章

  1. 怎样在设计中添加FIFO宏模块
  2. ios 自定义拍照页面_无需解锁也能使用的iOS实用小组件
  3. mysql binlog oplog_mongodb 学习之oplog
  4. 优化您的ApplicationContext
  5. 前端学习(2169):vue-router安装和配置方式
  6. 用Android Stuidio开发Flutter
  7. 华为一则面试题登上热搜;大众点评会员因点赞过多被处罚;Linux Kernel 5.12 发布|极客头条...
  8. 大数据时代 银行信息安全如何防护?
  9. C# winform如何设置ListBox背景图或者透明背景及边框色
  10. 用python调用ICTCLAS50进行中文分词
  11. 终于解决华硕电脑触摸板的关闭问题
  12. GB28181之国标编码规则
  13. vr全景接口_制作面向业务的VR接口
  14. 手把手 VM虚拟机安装deepin系统
  15. 买到招行CMP1一天赚90
  16. ATX结合Maxim实现多设备并行执行压力测试(AUI自动化测试框架)
  17. Android压缩包下载解压
  18. 数论作业 —— 同余理论
  19. JAVAC 运行报错‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件
  20. 30岁以上,没人脉、没资源、工作不顺心、更没钱,这4个小生意,拿去就可以干,只要你肯努力,就可以翻身

热门文章

  1. lol什么服务器出无限活力,《LOL》无限火力模式什么时候出 无限火力模式上线时间一览...
  2. Discuz!UCenter创始人密码重置方法
  3. jQuery 动感的横向柱状形投票统计图
  4. 爬虫:通过滑动或者点触验证码的方法及实现(点触+滑动)
  5. Volatile 关键字 内存可见性
  6. FastStone Capture
  7. 读取工作流程中的表单物件
  8. saltstack配置管理之YAML(二)
  9. 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson
  10. iptables一次性封多个ip,使用ipset 工具