首页 > 其他分享 >xtrabackup 重建 Slave 复制

xtrabackup 重建 Slave 复制

时间:2023-07-31 15:34:29浏览次数:30  
标签:slave -- 备份 xtrabackup master 复制 mysql Slave

一:物理全备

优先选择 基于slave 节点全备;当不存在可用的 slave 节点时,选择 master 节点备份

基于 slave 节点:
  innobackupex --defaults-file=/etc/my.cnf -S /tmp/mysql.sock --ftwrl-wait-threshold=2 --ftwrl-wait-timeout=3 --slave-info --host=127.0.0.1 --user=xxx --password=xxx --port=3306 --stream=tar /tmp | gzip - >  t_back_2023.tar.gz
基于 master 节点:
  innobackupex --defaults-file=/etc/my.cnf -S /tmp/mysql.sock --ftwrl-wait-threshold=2 --ftwrl-wait-timeout=3  --host=127.0.0.1 --user=xxx --password=xxx --port=3306 --stream=tar /tmp | gzip - >  t_back_2023.tar.gz
   
eg: innobackupex --defaults-file=/data/mysql/mysql3306/my.cnf -S /data/mysql/mysql3306/var/mysql.sock --ftwrl-wait-threshold=2 --ftwrl-wait-timeout=3  --host=xx --user=root --password=xx --port=3306 --stream=xbstream /tmp | gzip - >  t_back_2023.xb.gz
 
 # 出现如下关键字表示备份成功:
  InnoDB: FTS optimize thread exiting.
  InnoDB: Starting shutdown...
  InnoDB: Shutdown completed; log sequence number 715724708392
  230306 17:21:48 completed OK!

二:恢复备份

1. 将备份文件解压缩到 mysql 的数据目录:  
   tar -xf t_back_2023.tar.gz -C /home/mysql/data
 
2. 应用此目录下的事务日志文件 xtrabackup_logfile 到备份集解压后的路径中:
   innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
     
   # 出现如下关键字表示 recover 成功:
     xtrabackup: Transaction log of lsn (715329573149) to (715724704682) was copied.
     230306 16:30:13 completed OK!  
 
3. 启动实例:
   mysqld --defaults-file=/etc/my.cnf --user=mysql &

三: 与主库 建立复制关系

恢复备份以后,实例需要与主库建立复制关系,同步增量数据

• 基于 slave 节点 恢复备份时:
 
  1. 清除 GTID 和 slave 复制信息:
    mysql> reset master; reset slave
 
  2. 设置 gtid_purged:
    (1)查看 xtrabackup_slave_info 文件,该文件记录了gtid_purged 信息:
      eg: mysql> SET GLOBAL gtid_purged='294c965f-eacd-11e9-a9c7-20040ff27868:1-19942458;
    (2)配置  MASTER_AUTO_POSITION  (通常是默认配置)
      mysql> CHANGE MASTER TO MASTER_AUTO_POSITION=1;
    (3)开启 slave 同步, 并确认复制状态
      mysql> start slave;
      mysql> start slave;  
 
• 基于 master 节点 恢复备份时: 参考文件 xtrabackup_binlog_info 设置 gtid_purged,执行以上步骤
   
change master to master_host='xxx',
master_user='repluser',
master_password='12346',
master_port=3306,
master_auto_position=1;

备份流程 与 注意事项:

xtarbackup 在备份过程中会有加 FTWRL 全局锁的操作,此时整个实例处于只读状态,通常这个过程有几秒;但当 实例在发生 DDL 或长事务时,xtrabackup 备份时将拿不到 FTWRL 锁,

而在 FTWRL 语句之后的所有 DML/DDL 都将阻塞,表现上就像实例 hang 住了一样。如果是在 主库上执行 备份,那么业务无法读写是不能接受的;如果是在 slave 节点执行备份,将会导致 binlog 无法回放,复制延迟,从库有业务查询的时,也将阻塞。

综上,xtarbackup 备份数据,应该选择业务低峰期,优先从 slave 节点备份,且确保在备份时实例中 无长事务发生!

标签:slave,--,备份,xtrabackup,master,复制,mysql,Slave
From: https://www.cnblogs.com/notes201432273/p/17593567.html

相关文章

  • mysql 延迟复制 second bechind
    实现MySQL延迟复制secondbehind1.简介在MySQL复制过程中,主服务器(Master)将二进制日志(BinaryLog)中的事件复制到从服务器(Slave)上。而"mysql延迟复制secondbehind"的目标是在从服务器上设置延迟时间来实现数据同步的延迟。本文将介绍如何通过更改MySQL的复制参数来实......
  • python 矩阵自我复制
    Python矩阵自我复制实现指南作为一名经验丰富的开发者,我将带领你学习如何实现"Python矩阵自我复制"。在本文中,我们将使用Python编程语言来实现这个功能。首先,让我们来看一下整个实现的流程。实现流程下面是实现"Python矩阵自我复制"的步骤:步骤描述1创建一个矩阵2......
  • 3-2 编写一个函数 escape(s, t),将字符串 t 复制到字符串 s 中,并在复制 过程中将换行
    ArchlinuxGCC13.1.1 202304292023-07-3012:57:46星期日 点击查看代码#include<stdio.h>voidescape(chars[],chart[]){inti,j;i=j=0;while(t[i]!='\0'){switch(t[i]){case�......
  • 如何复制文件到 Hyper-V 虚拟机上
    想要实现复制文件到虚拟机上,主要是需要在Hyper-V主机上打开增强会话模式如果Hyper-V主机运行的是Windows10或Windows8.1,则默认情况下,增强会话模式处于打开状态,因此你可以跳过此步骤并转到下一部分。但是,如果主机运行的是WindowsServer2016或WindowsServer2012......
  • Android 资源和国际化 [复制链接]
    Android资源和国际化[复制链接]资源是您在代码中使用到的并且在编译时被打包进您的应用程序的附加文件。Android支持多种不同的文件,包括XML、PNG和JPEG文件。XML文件的格式决定于其描述的内容。这些文件将描述文件支持的类型、语法或格式。  处于加载效率的考虑,资源被从......
  • PageOffice在线只读打开word文件并禁止复制
    一、PageOffice禁止复制1、poCtrl.setAllowCopy(false);//禁止拷贝,权限比较大,系统的快捷键Ctrl+C,Ctrl+V也会受到影响,但是可以在其他程序中可以使用右键菜单进行拷贝粘贴操作2、wordDoc.setDisableWindowSelection(true);//禁止word的选择文字功能3、poCtrl.setDisableCopyOnly......
  • Java复制
    将一个对象的引用复制给另外一个对象,一共有三种方式。第一种是直接赋值,第二种方式是浅拷贝,第三种是深拷贝。所以大家知道了哈,这三种概念都是为了拷贝对象。直接赋值复制直接赋值。在Java中,Aa1=a2,我们需要理解的是这实际上复制的是引用,也就是说a1和a2指向的是同一个对象。因......
  • Redis复制
       ......
  • Vue3多条数据复制功能,复制内容用逗号拼接
    <divclass="person-list"><divclass="person-item">9939939939399399</div><divclass="person-item">1111111111111111</div></div>&......
  • Linux对文件夹操作(复制,移动)
    复制文件夹cpcp-avuevue-copy将vue文件夹下面的所有文件,复制到同目录下vue-copy文件夹下面-a:相当于-d、-p、-r选项的集合,这几个选项我们一一介绍;-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;-i:询问,如果目标文件已经存在,则会询问是否覆盖;-l:把目......