通过 XtraBackup 实现不停机不锁表搭建MySQL主从同步

opencv3 feature2d 的探索 想研究一下 feature.cpp中的detect() virtual void cv::Feature2D::detect ( InputArray image, std::vector< KeyPoint > & keypoints, ... 阅读详情

Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写)。备份时,Xtrabackup 会将 Master 的 binlog 信息记录在 xtrabackup_slave_info 文件中,通过此信息可以方便的搭建主从复制。

XtraBackup 有两个工具:xtrabackup 和 innobackupex:

  • xtrabackup 本身只能备份 InnoDB 和 XtraDB ,不能备份 MyISAM;
  • innobackupex 本身是 Hot Backup 脚本修改而来,同时可以备份 MyISAM 和 InnoDB,但是备份 MyISAM 需要加读锁。

官网:http://www.percona.com/software/percona-xtrabackup
文档:http://www.percona.com/doc/percona-xtrabackup/2.2/index.html

注:本文服务器环境为 CentOS,其他环境请自行修改实现。

修改主库、从库 MySQL 配置文件

1、Master

vim /etc/my.cnf

datadir=/var/lib/mysql
server-id=1
log-bin=mysql-bin

2、Slave:

vim /etc/my.cnf

server-id=2
datadir=/var/lib/mysql

安装 XtraBackup

1、添加源

yum install http://www.percona.com/downloads/percona-release/RedHat/0.1-3/percona-release-0.1-3.noarch.rpm

检查是否添加成功:

yum list | grep percona

如果执行正确,其输出信息通常类似:

percona-release.x86_64                     0.0-1                       installed
...
Percona-Server-client-51.x86_64            5.1.47-rel11.1.51.rhel5     percona
Percona-Server-devel-51.x86_64             5.1.47-rel11.1.51.rhel5     percona
Percona-Server-server-51.x86_64            5.1.47-rel11.1.51.rhel5     percona
Percona-Server-shared-51.x86_64            5.1.47-rel11.1.51.rhel5     percona
Percona-Server-test-51.x86_64              5.1.47-rel11.1.51.rhel5     percona
...
xtrabackup.x86_64                          1.2-22.rhel5                percona
2、安装 xtrabackup

yum install percona-xtrabackup

创建备份

innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

如果执行正确,其输出信息通常类似:

innobackupex: Backup created in directory '/path/to/BACKUP-DIR/2015-03-03_00-00-09'
innobackupex: MySQL binlog position: filename 'mysql-bin.000003', position 1946
111225 00:00:53  innobackupex: completed OK!

备份时,innobackupex 会调用 xtrabackup 备份 InnoDB 表的数据,并且会复制 MyISAM, MERGE,CSV 和 ARCHIVE 表的表定义文件(.frm 文件)、数据文件。同时还会备份触发器和数据库配置信息相关的文件。这些文件将会保存在指定备份目录中一个以时间戳命名的目录下。

准备备份

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobackupex --apply-log /path/to/BACKUP-DIR

如果执行正确,其最后输出的几行信息通常如下:

xtrabackup: starting shutdown with innodb_fast_shutdown = 1
120407  9:01:36  InnoDB: Starting shutdown...
120407  9:01:40  InnoDB: Shutdown completed; log sequence number 92036620
120407 09:01:40  innobackupex: completed OK!

在实现“准备”的过程中,innobackupex 通常还可以使用 --use-memory 选项来指定其可以使用的内存的大小,默认通常为 100M。如果有足够的内存可用,可以多划分一些内存给 prepare 的过程,以提高其完成速度。

恢复备份

将数据复制到从服务器上:
scp -r /path/to/BACKUP-DIR root@slave_host:/data/

在从服务器中恢复备份数据:
innobackupex --copy-back /path/to/BACKUP-DIR

如果服务器剩余空间不足,你可以使用 --move-back 替换掉 --copy-back。

如果执行正确,其输出信息的最后几行通常如下:

innobackupex: Starting to copy InnoDB log files
innobackupex: in '/backup/2012-04-07_08-17-03'
innobackupex: back to original InnoDB log directory '/mydata/data'
innobackupex: Finished copying back files.
...
120407 09:36:10  innobackupex: completed OK!

启动从库 MySQL,设置主库信息

当数据恢复至数据目录以后,还需要确保所有数据文件的属主和属组均为正确的用户,如mysql,否则,在启动mysqld之前还需要事先修改数据文件的属主和属组。如:

chown -R mysql:mysql /mydata/data/

启动从库:

/etc/init.d/mysqld start

在主库中开设主从用的账号和权限:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.1' IDENTIFIED BY 'slave';

查看备份文件 xtrabackup_binlog_info 中的日志文件以及position。

CHANGE MASTER TO
MASTER_HOST='<master_host>',
MASTER_USER='<slave_username>',
MASTER_PASSWORD='<slave_password>',
MASTER_LOG_FILE='<see xtrabackup_binlog_info>',
MASTER_LOG_POS=<see xtrabackup_binlog_info>;

开启主从同步:

START SLAVE;

查看从库状态:

SHOW SLAVE STATUS;

Ps:用 innobackupex 备份数据时,–apply-log 处理过的备份数据里有两个文件说明该备份数据对应的 binlog 的文件名和位置。但有时这俩文件说明的位置可能会不同。
1 对于纯 InnoDB 操作,备份出来的数据中上述两个文件的内容是一致的
2 对于 InnoDB 和非事务存储引擎混合操作,xtrabackup_binlog_info 中所示的 position 应该会比 xtrabackup_pos_innodb 所示的数值大。此时应以 xtrabackup_binlog_info 为准;而后者和 apply-log 时 InnoDB recovery log 中显示的内容是一致的,只针对 InnoDB 这部分数据。

Ps2:启动 MySQL 时,遇到权限问题的解决方法:

报错信息:

150430 14:41:16  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.

解决方法:
chown -R mysql:mysql /home/data/mysql
chcon -R -t mysqld_db_t /home/mysql

参考资料:

1、http://www.linuxidc.com/Linux/2014-01/95132.htm
2、http://www.linuxidc.com/Linux/2012-10/71919.htm

MySQL管理之使用XtraBackup进行热备 http://www.linuxidc.com/Linux/2014-04/99671.htm

MySQL开源备份工具Xtrabackup备份部署 http://www.linuxidc.com/Linux/2013-06/85627.htm

MySQL Xtrabackup备份和恢复 http://www.linuxidc.com/Linux/2011-12/50275.htm

用XtraBackup实现MySQL的主从复制快速部署【主不锁表】 http://www.linuxidc.com/Linux/2012-10/71919p2.htm

安装和使用 Percona 推出的 Xtrabackup 备份 MySQL http://www.linuxidc.com/Linux/2011-10/44451.htm

企业实战|Mysql不停机维护主从同步 转载来源 :企业实战|Mysql不停机维护主从同步 : https://mp.weixin.qq.com/s/CQFmFhtRMFsESofDpTOvUA 实战环境: Mysql-5.7 Xtrabackup-2.4 Xtrabackup 介绍: Percona XtraBackup是一款基于MySQL的服务器的开源热备份实用程序,在备份过程中不会锁定数据库。它可以备份来自MySQL5.1,5... 阅读详情

相关推荐

MySQL不停机不锁表主从同步与读写分离配置

MySQL不停机不锁表主从同步与读写分离配置,1 .xtrabackup安装.2.核对mysql的版本.3.在master服务器上在线备份数据库.4.slave机器上操作

通过 XtraBackup 实现不停机不锁表搭建主从同步

简介 Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写)。备份时,Xtrabackup 会将 Master 的 binlog 信息记录在 xtrabackup_slave_info 文件中,通过此信息可以方便的搭建主从复制。 XtraBackup 有...

weixin_34414196的博客 252

Veritas NetBackup 10.1 Windows安装指南:从账户配置到完整部署

本文详细介绍了Veritas NetBackup 10.1在Windows系统上的完整安装流程,从账户配置到部署验证。重点讲解了创建专用服务账户、安装组件选择、许可证输入等关键步骤,并提供了常见问题排查和进阶配置建议,帮助用户顺利完成企业级备份解决方案的部署。

weixin_26765287的博客 453

Mysql基于xtrabackup主从同步搭建

Mysql基于xtrabackup主从同步搭建

sqlora的专栏 1321

Windows下Maven环境变量配置避坑指南:解决‘mvn‘不被识别问题

本文详细解析了Windows系统中配置Maven环境变量时常见的'mvn'不被识别问题,特别是当系统提示“无法将‘mvn’项识别为cmdlet、函数、脚本文件或可运行程序的名称”时的解决方案。文章从问题根源入手,提供了清晰的配置步骤、深入的排查方法以及针对PowerShell的特殊处理,旨在帮助开发者彻底解决环境变量配置难题,确保Maven命令正常使用。

weixin_28826961的博客 389

Jetson Orin NX 单目标跟踪算法实战

本文对比了NanoTrack和MixFormerV2两种目标跟踪算法在Jetson Orin NX边缘设备上的实际表现。通过天空小目标跟踪场景测试发现,NanoTrack虽然表征能力较弱,但具有目标身份一致性强、失败模式可控、计算负担小等优势,更适合作为边缘端默认算法。MixFormerV2则适用于高速运动等特定场景。实验数据显示NanoTrack在Orin NX上可达200FPS,远高于MixFormerV2的38-120FPS。建议先采用NanoTrack构建稳定系统,后续再评估复杂算法的适用性。

karmueo46的博客 624

Mysql启动失败问题解决

 最近在实验中要架设RUBiS进行实验,需要apache、jboss和mysql三层结构。开始时,mysql一直没有问题,但这周一却发现mysql启动失败。/var/log/mysqld.log显示如下错误:081007 15:08:53  mysqld started081007 15:08:53  InnoDB: Operating system error number 13 i

samplise的专栏 2812

408——计算机组成原理(持续更新)

小数点前的0代表正数,1代表负数。

qq_55202378的博客 1721

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

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

weixin_33805992的博客 208

数字孪生驱动的城市地下管网智能运维与应急处置决策支持系统

上海市城市数字化中心的数据实践显示,通过关联分析管网材质与故障率的关系,将铸铁管更换周期从15年优化至8年(李敏,2021)。环境效益方面,上海市通过优化管网运行参数,年减少碳排放1.8万吨,相当于种植36万棵乔木。数字孪生与物理设备的双向交互采用OPC UA协议实现,某次天津管网渗漏事件中,系统通过实时数据反馈,指导现场人员调整注浆方案,将修复时间从48小时压缩至16小时。虚拟指挥沙盘支持多视角协同,深圳水务系统的实践表明,通过AR可视化技术,跨部门会议效率提升60%,方案决策时间缩短40%。

2501_92431686的博客 1424

C语言面试,8道一定会遇到的----关于指针的笔试题详解

C语言面试,8道一定会遇到的----关于指针的笔试题详解

m0_55322924的博客 462

通过XtraBackup实现不停机不锁表搭建MySQL主从同步

  注意!!!!用主库恢复从库的时候有定时任务event的,从库的event要置为disable状态,否则会因为主从都执行定时任务而数据出现主从数据不一致的情况。   主库: [root@mysqlplus soft]# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm [r

成屿的专栏 629

整车的智能配电系统

本文探讨了汽车电网安全的重要性,分析了传统汽车电网的现状,并重点介绍了半导体在汽车智能配电系统中的作用。半导体凭借其单向导电性和可控性,如二极管、MOSFET等,提供了更高效、安全的电力控制。通过对比传统保险丝与半导体器件,阐述了半导体在过流保护、电压监测和故障诊断方面的优势,强调其在减少安全隐患、提高能源管理和续航里程方面的贡献。极氪智能配电系统展示了如何运用半导体技术实现整车能源的精细化管理,降低维修成本,减少线束复杂性,提升安全性能。

让你爱上电路设计 1610

XtraBackup不停机不锁表搭建MySQL主从同步实践

XtraBackup不停机不锁表搭建MySQL主从同步实践 By wsgzao  发表于 2015-08-07 前言 Percona XtraBackup可以说是一个相对完美的免费开源数据备份工具,支持在线无锁表同步复制和可并行高效率的安全备份恢复机制相比mysqldump来说确实让人眼前一亮,与MySQL Enterprise Backup(InnoDB Hot Backup)的

Ryan Z 的技术日志 718

Android 15.0 app进程保活白名单功能实现

在15.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 638

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

XtraBackup不停机不锁表做MySQL主从复制的试验

环境:Centos6.5、MySQL5.7、XtraBackup2.4.13(经过测试、此版本适合MySQL5.7) 一、这里是先安装宝塔Linux5.9集成环境、之后再安装MySQL # yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh ...

weixin_33869377的博客 324

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

推荐: XtraBackup 不停机不锁表搭建MySQL主从同步实践

前言 Percona XtraBackup可以说是一个相对完美的免费开源数据备份工具,支持在线无锁表同步复制和可并行高效率的安全备份恢复机制相比mysqldump来说确实让人眼前一亮,与MySQL Enterprise Backup(InnoDB Hot Backup)的功能对比可以参考扩展阅读。当然我们在实际运维过程中都应针对不同的业务需求分析和选择合适的备份恢复方案,这篇文章就是针对

大树叶 技术专栏 1544

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

基于mysql5.7主从同步实现不停机修复主从同步问题

基于mysql5.7主从同步实现不停机修复主从同步问题

p12361465的博客 821

2020地区mysql表_MySQL如何不停机维护主从同步?看这篇就够了,建议收藏!

前言随着2013年5月17日,阿里集团最后一台IBM小机在支付宝下线后,毫无疑问,MySQL 已经是当今互联网公司使用最多的数据库了,Mysql开源免费,而且可以很方便的横向扩展来支撑高并发的流量,中小企业使用Mysql一主多从,也可以很方便的实现程序的读写分离。那么在企业里主数据库不停机的情况,如何做到不停机维护主从同步呢?今天我们就跟大家分享一下企业实际案例。实战环境Mysql-5.7Xtra...

weixin_28679635的博客 198

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

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

weixin_35909141的博客 366

XtraBackup 实现不停机不锁表搭建mysql主从

简介 Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写)。备份时,Xtrabackup 会将 Master 的 binlog 信息记录在 xtrabackup_slave_info 文件中,通过此信息可以方便的搭建主从复制。 XtraBackup 有两个工具:xtrabackup 和 innoback

youbo_sun的专栏 565
上一篇: mysql.sock文件被删除后,如何本地登录mysql的
下一篇: JAVA 与 MyCat(1) System.getProperty()
本木生
博客等级 码龄14年 18粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值