利用xtraBackup实现不停master服务做主从同步

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

MySQL主从同步原理:

MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态),Slave MySQL上通过一个I/O线程从Master MySQL上读取binlog,然后传输到Slave MySQL的中继日志中,然后Slave MySQL的SQL线程从中继日志中读取中继日志,然后应用到Slave MySQL的数据库中。这样实现了主从数据同步功能。


XtraBackup备份原理:

innobackupex在后台线程不断追踪InnoDB的日志文件,然后复制InnoDB的数据文件。数据文件复制完成之后,日志的复制线程也会结束。这样就得到了不在同一时间点的数据副本和开始备份以后的事务日志。完成上面的步骤之后,就可以使用InnoDB崩溃恢复代码执行事务日志(redo log),以达到数据的一致性。


备份分为两个过程:

backup,备份阶段,追踪事务日志和复制数据文件(物理备份)。

preparing,重放事务日志,使所有的数据处于同一个时间点,达到一致性状态。


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


软件下载地址:https://www.percona.com/software/mysql-database/percona-xtrabackup


二 核对mysql的版本:

利用xtrabackup做全备和恢复的,Mysql的版本最好一致!

检查mysql版本:

 /webser/mysql55/bin/mysql -V

/webser/mysql55/bin/mysql  Ver 14.14 Distrib 5.5.21, for Linux (x86_64) using readline 5.1

wKioL1XMONuBBE1oAADLxPm0RLc939.jpg



三.在master服务器上在线备份数据库:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf --user=root --password=xxxx  /tmp/backup/


PS:/tmp/backup/ 为备份目录;

然后通过scp方式把master上


四.slave机器上操作;

1)关闭mysql服务;

然后清空mysql数据目录下文件,例如本机mysql的数据目录是:/webser/mysql55/var/ 


2)开始恢复数据

假设备份文件的路径在:/webser/2015-08-12_13-54-56


恢复日志文件:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf --user=root --password=xxxx --apply-log /tmp/backup/2015-08-12_13-49-32/

恢复数据文件:

innobackupex --defaults-file=/webser/mysql55/etc/my.cnf --user=root --password=xxxx --copy-back /tmp/backup/2015-08-12_13-49-32/


以上操作,请务必按照顺序执行,操作顺序颠倒,会引起mysql服务器启动不了!


3)修改数据目录权限:

chown -R mysql:mysql /webser/mysql55/var  


4)安全方式启动mysql,查看是否有异常;

/webser/mysql55/bin/mysqld_safe --defaults-file=/webser/mysql55/etc/my.cnf &

如果没有异常报错,就关闭mysql

 /webser/mysql55/bin/mysqladmin -uroot -p shutdown


5)查看binlog日志文件的位置值,做主从同步:

cat /tmp/backup/2015-08-12_13-49-32/xtrabackup_binlog_info 

wwwmaster.000458    1022022953


6)在slave机器上做主从相关操作:

CHANGE MASTER TO

MASTER_HOST='192.168.1.xxx',

MASTER_USER='rep',

MASTER_PASSWORD='xxxxxx',

MASTER_PORT=3306,

MASTER_LOG_FILE='wwwmaster.000458',

MASTER_LOG_POS=1022022953;


启动主从同步:

start slave;


查看slave状态:

wKiom1XMODeyRvEmAARsOvTBEKo632.jpg'




本文转自 shine_forever 51CTO博客,原文链接:http://blog.51cto.com/shineforever/1684335

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
MySQL主从:延时从库恢复全解
MySQL主从:延时从库恢复全解
|
SQL 关系型数据库 MySQL
MySQL主从架构之Slave数据滞后Master怎么办?教你一招制敌!
MySQL主从架构之Slave数据滞后Master怎么办?教你一招制敌!
117 0
|
SQL 关系型数据库 MySQL
主库挂了,从库谋权篡位的那些事!
大家好,我是Leo。一个Java后端的程序员。之前我们介绍了MySQL如何保证高可用的相关技术点,比如可靠性优先策略,可用性优先策略,主从延迟,主从延迟的来源以及解决方案。今天我们继续上一篇文章遗留的问题作一个延伸,今天介绍一下从库的延迟问题!以及主库宕机,从库的抉择!
主库挂了,从库谋权篡位的那些事!
一主两从的环境,如果主库挂了,如何选举一个从库作为主库?
一主两从的环境,如果主库挂了,如何选举一个从库作为主库? 如图: 如果M挂了,怎么从S1和S2中选举一个从库作为主库? 传统复制的解决方法 (1)查看从库状态: S1:show slave status; S2:show slave status; root@l...
943 0
|
关系型数据库 MySQL 数据库
mysql配置为半同步复制
mysql 半同步插件是由谷歌提供,具体位置/usr/local/mysql/lib/plugin/下,一个是 master用的 semisync_master.so,一个是 slave 用的 semisync_slave.so,下面我们就来具体配置一下。
1362 0
|
NoSQL Redis
|
监控 关系型数据库 MySQL