MySQL-Transfer逐渐有一些其他公司的同学在使用,这里会持续更新运维上的注意事项。
背景
正常情况下,若要从原来的主从切换成Transfer 模式,只需要作如下步骤:
1、在slave相同机器上部署一个Transfer,并配置好各种remote_slave参数
2、在slave上stop slave
3、把slave的表结构dump给transfer
4、从slave中查看当前执行到master的位置
5、在transfer执行change master xxxxx; start slave 即可。
状况描述
线上某个项目主从延迟很多天(>7)。由于主库的binlog只保存一周,导致在要切换到Transfer的时候,从slave上show slave status得到的master_log_file在主库已经不存在了。
这样无法通过上述的步骤5来实现切换到原来的位置。
有同学要问,这样的情况下,原来的主从怎么保证最终一致性?
实际上从库上是有两个线程协同工作的,io_thread 已经把主库的更新命令都接收并保存在本地的relay-log了。 只是sql_thread处理速度太慢没有执行这些命令而已。
注意
需要特别注意:change master是会删除本地的relay log的。因此在上面的情况下,执行change master要谨慎,以防主库没有binlog的情况下删除备库的relaylog
解决方案
从上面的说明看出,Slave上其实有足够的信息能够重放主库的命令(relaylog).因此在切换到transfer时需要换一个步骤:
1、 在slave相同机器上部署一个Transfer,并配置好各种remote参数
2、在slave上stop slave
3、把slave的表结构dump给transfer
(前面几个步骤不变)
4、将slave上的master.info、 master.info 和 mysqld-relay-bin.* (就是跟从库有关的数据) 都拷贝到transfer的对应目录下
5、在transfer直接执行start slave (重申,不能change master)
由于transfer重新启动以后,读到的是从slave上拷贝过来的数据,因此以为是之前自己的io_thread已经读取的数据,start以后就“继续”读取relaylog来更新slave。
情况还可能更糟
如果这时候刚好主库出了点什么问题,导致连都连不了。那么上面改进步骤的第5点,就改成start slave sql_thread,这样tranfer不连主库,先把本地的relaylog都重放一遍。
Btw一下,start slave sql_thread这么犀利的命令不属于transfer patch的代码,MySQL本身就支持了
分享到:
相关推荐
作者:高鹏(网名八怪),《深入理解MySQL主从原理32讲》系列文的作者。2008年开始至今一直从事Oracle/MySQL相关工作,现任易极付高级DBA,Oracle Ocm。有丰富的数据库性能调优,故障诊断经验,并且对MySQL源码有...
### MySQL主从安装部署知识点详解 #### 一、MySQL主从安装部署概述 MySQL 主从复制是一种常见的数据备份和负载均衡技术,在多...通过以上步骤和注意事项,可以有效地实现MySQL的主从复制,提高系统的稳定性和可靠性。
完成 MySQL 的安装和基本配置后,接下来我们将进行 MySQL 主从库的配置。MySQL 的主从复制机制可以实现数据的自动同步,有助于提高数据的可靠性和读取性能。以下是详细的配置步骤: 1. **主库配置**: - 编辑主库...
2. MySQL主从复制延迟:这指的是MySQL数据库在主从架构模式下,从服务器与主服务器之间的数据复制可能存在时间差,而Lepus能够监控到这种延迟情况。 3. 慢查询:慢查询指的是数据库查询操作耗时过长,对于性能影响较...
#### 三、其他注意事项 - **重启服务**:任何配置文件修改完成后都需要重启MySQL服务才能生效。 - **错误处理**:如果在配置过程中遇到问题,可以查看MySQL的日志文件以获取更详细的错误信息。 - **监控与维护**:...
在本讲中,我们将深入探讨如何使用SpringBoot与MySQL实现主从复制以及读写分离的架构设计。这一技术方案在大型分布式系统中尤为常见,它能够有效地提高数据库系统的可用性和性能。 首先,让我们理解主从复制的核心...
**实施细节注意事项**: - **数据更新时间**:为了确保数据的完整性和一致性,数据同步的时间间隔应小于或等于数据备份周期。这样可以保证从服务器上的数据是最新的,一旦主服务器出现故障,可以从服务器中快速恢复...
MySQL 主从同步配置过程 一、 MySQL 主从同步配置概述 MySQL 主从同步配置是指将 MySQL 数据库的数据从一台服务器(主服务器)同步到另一台服务器(从服务器)的过程。这种配置可以实现数据的高可用性和灾难恢复,...
mysql主从监控,MySQL主从同步失败后自动同步,可以建立一个任务,定时巡检,巡检到失败后自动从新做主从
MySQL 主从复制与读写分离 MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器中,以实现数据的高可用性和读写分离。下面是 MySQL 主从复制与读写分离的详细知识点: MySQL 主从复制 ...
本文将详细介绍如何搭建MySQL主从互备系统,并通过具体的步骤指导完成快速数据迁移。 #### 二、准备工作 ##### 1. 环境准备 - **主机**:IP地址为192.168.1.203,端口号3306 - **从机**:IP地址为192.168.1.204,...
首先,MySQL主从同步的基本概念指的是在一个数据库实例(主库)上对数据进行修改操作后,通过一定的机制将这些修改操作复制到一个或多个数据库实例(从库)上。主库负责数据的写操作,而从库可以用于数据备份或者...
MySQL主从数据库配置是数据库高可用性和负载均衡的重要实践,它允许数据从一个主数据库(Master)异步复制到一个或多个从数据库(Slave)。这种配置对于处理大规模数据操作和保证数据一致性至关重要。 主从复制的...
**注意事项:** - 在进行主从切换时,务必保证网络稳定,避免数据丢失。 - 监控系统性能,确保切换过程中的数据一致性。 - 定期备份,防止意外情况发生。 - 对于大型系统,可能需要考虑半同步复制或多主复制以提高...
MySQL主从镜像是数据库高可用性和数据冗余的一种常见实现方式,它允许数据在主服务器(Master)上被写入并同步到从服务器(Slave)。当主服务器出现故障时,可以快速将从服务器切换为新的主服务器,确保服务的连续性...