重置mysql主从同步(MySQL Reset Master-Slave Replication)
在mysql主从同步的过程中,可能会因为各种原因出现主库与从库不同步的情况,网上虽然有一些解决办法,但是有时很难彻底解决,重置主从服务器也许不是最快的办法,但却是最安全有效的。
下面将自己重置主从同步的步骤总结一下,以备不时之需。
master与slave均使用:centos6.0+mysql 5.1.61 ,假设有db1,db2两个数据库需要热备。
文中shell与mysql均使用root账号,在真实环境中,请根据情况更换。
1.停止slave服务器的主从同步
为了防止主从数据不同步,需要先停止slave上的同步服务。
STOP SLAVE;
2.对master服务器的数据库加锁
为了避免在备份的时候对数据库进行更新操作,必须对数据库加锁。
FLUSH TABLES WITH READ LOCK;
如果是web服务器也可以关闭apache或nginx服务,效果也是一样的。
3.备份master上的数据
mysqldump -u root -p -databases db1 db2 > bak.sql
4.重置master服务
RESET MASTER;
这个是重置master的核心语法,看一下官方解释。
RESET MASTER removes all binary log files that are listed in the index file, leaving only a single, empty binary log file with a numeric suffix of .000001, whereas the numbering is not reset by PURGE BINARY LOGS.
RESET MASTER is not intended to be used while any replication slaves are running. The behavior. of RESET MASTER when used while slaves are running is undefined (and thus unsupported), whereas PURGE BINARY LOGS may be safely used while replication slaves are running.
大概的意思是RESET MASTER将删除所有的二进制日志,创建一个.000001的空日志。RESET MASTER并不会影响SLAVE服务器上的工作状态,所以盲目的执行这个命令会导致slave找不到master的binlog,造成同步失败。
但是我们就是要重置同步,所以必须执行它。
5.对master服务器的数据库解锁
UNLOCK TABLES;
如果你停止了apache或nginx,请开启它们
6.将master上的备份文件拷贝到slave服务器上
大可不必用WinScp先下载到本地再上传到slave上,可以直接使用scp命令在服务器间拷贝,速度更快。
scp -r root@XXX.XXX.XXX.XXX:/root/bak.sql ./
7.删除slave服务器上的旧数据
删除前,请先确认该备份的是否都备份了。
DROP DATABASE db1;
DROP DATABASE db2;
8.导入数据
SOURCE /root/bak.sql;
9.重置slave服务
RESET SLAVE;
还是看一下官方解释
RESET SLAVE makes the slave forget its replication position in the master's binary log. This statement is meant to be used for a clean start: It deletes the master.info and relay-log.info files, all the relay log files, and starts a new relay log file. To use RESET SLAVE, the slave replication threads must be stopped (use STOP SLAVE if necessary).
大概意思是,RESET SLAVE将清除slave上的同步位置,删除所有旧的同步日志,使用新的日志重新开始,这正是我们想要的。需要注意的是,必须先停止slave服务(STOP SLAVE),我们已经在第一步停止了它。
10.开启slave服务
START SLAVE;
大功告成,SHOW SLAVE STATUS\G 检查同步状态,一切正常。
相关推荐
### MySQL主从复制详解 #### 一、MySQL主从复制概念 MySQL的主从复制机制是一种数据同步方式,主要用于实现数据库的数据备份与高可用性。它通过将一个MySQL服务器(称为“主服务器”)的数据自动复制到另一个或多个...
解决方法:在从服务器上执行reset slave命令重置复制设置,然后使用正确的主机信息重新设置主服务器,并启动同步。 三、Mysql主从同步的优势 1. 提高数据安全性:主从复制可以为数据提供冗余备份,当主服务器故障...
MySQL 8.0.22 主从复制配置是数据库高可用性和数据安全性的重要实践,它允许数据在多个服务器之间实时同步,确保即使在一个服务器出现问题时,数据仍然可以正常访问。以下是一个详细的步骤指南: **主服务器配置:*...
MySQL 5.5主从同步配置是数据库集群中常见的高可用性和负载均衡方案,通过将主服务器的数据变更实时同步到从服务器,实现读写分离,提高系统整体性能。以下是详细的配置步骤: 首先,在主服务器(10.1.123.197)上...
- 重置 slave:`reset slave;` - 设置 slave 信息,用主库的信息替换:`CHANGE MASTER TO MASTER_HOST='172.17.1.1', MASTER_PORT=3306, MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-...
总之,处理MySQL主从复制错误时,理解`sql_slave_skip_counter`和`reset slave`的作用至关重要。前者能帮助你在不影响数据一致性的情况下跳过特定错误,而后者则允许你彻底重置从库的复制状态,以应对更复杂的问题。...
根据不同的应用场景,MySQL支持多种复制模式,包括主从复制(master-slave replication)和主主复制(master-master replication)等。 本文档主要介绍在MySQL环境中管理和维护复制源服务器(通常称为“主服务器”...
如果遇到需要重置复制的情况,则需要在主从服务器上使用`RESET MASTER`和`RESET SLAVE`命令来重置复制的环境。 以上就是MySQL主从配置的基本知识点和操作流程。通过以上步骤,可以建立起MySQL主从复制环境,实现...
/usr/local/percona/bin/mysql -u root -p mysql -e "reset master;" ``` #### 二、MySQL 主从复制配置 - **授予从服务器权限**:为从服务器创建用户,并授予其复制权限。 ```sh GRANT REPLICATION SLAVE ON *....
2. **从服务器版本等于或大于主服务器版本**:这是MySQL主从复制的基本要求之一,确保数据能够顺利同步。 3. **确保主从服务器拥有相同的初始状态**:这意味着两台服务器上的数据应该是完全一致的。可以通过全量备份...
mysql> reset master; ``` 然后启动从机的复制进程: ```sql mysql> start slave; ``` 最后,通过`show slave status\G;`检查复制状态,确保一切正常运行。 在配置过程中可能会遇到的问题有: 1. 如果出现...
MySQL 的主从复制机制允许一个或多个从服务器(slave)自动地复制主服务器(master)上的数据变更。 **配置步骤:** 1. **主服务器配置:** - 确认 bind-address 设置正确。 - 授予复制所需的权限。 - 编辑 my...
8. **主从同步测试**:`SHOW SLAVE STATUS\G`显示从节点的状态,`SHOW MASTER STATUS\G`显示主节点的状态,`START SLAVE`启动复制,`RESET SLAVE`和`RESET MASTER`用于重置复制设置。 9. **故障转移和监控**:在...