注意: 进行此操作时,确认在之前已经开启了MySQL的bin-log日志,如果没有则无法实现

为了安全考虑,我们授权一个用户进行数据备份:

[root@7con ] mysql -uroot -p
mysql> grant all on *.* to 'skon'@'192.168.1.1' identified by 'user_passwd';

备份主库上的数据库数据,注意添加以下选项
详细参数含义,请参考MySQL官方文档:https://dev.mysql.com/doc/

[root@7con ] mysqldump -uskon -p --single-transaction --master-data=2 --no-autocommit -A >alldatas.sql

如果想要备份指定库,需要添加 replicate_wild_do_table选项,为了保持数据的完全一致性,个人不建议只备份指定库。

1、将从库上的数据库清空,并还原为普通的数据库,(删除master.info relay-log.info relay-bin.index)
    2、重置mysql数据库的master和slave;重置slave时,先停止slave(stop slave;)

[root@7con ] mysql -uroot -p
mysql> reset master;
mysql> show master status\G
mysql> stop slave;
mysql> reset slave;
mysql> show slave status\G

# 这里可以看到,master和slave已经被重置

接下来就是导入数据库信息,导入之后重新指向主库:
注意:重新指向主库的master_log_file和master_log_pos,不是主库show master status;显示的信息,而是从主库上备份的文件里的信息,如下图:

接下来我们进行操作:(从库上操作)

还原数据库

[root@7con ] mysql -uroot -p < alldatas.sql

重新设置同步

[root@7con ] mysql -uroot -p
mysql > change master to
-> master_host='192.168.1.1',
-> master_user='Skon',
-> master_password='Skon123',
-> master_log_file='binlog.000204',
-> master_log_pos=547507087;
mysql > start slave;
mysql > show slave status\G

最终的结果如下图:

可以看到 Slave_IO_Running 和 Slave_SQL_Running 均为yes,说明主从同步已经恢复;
Seconds_Behind_Master 刚开始的数值会很大,最后会逐渐的减至为0,说明从库正在从主库上写入之前没有同步的数据,直至同步完成。

作者:Seichung
来源:CSDN
原文:https://blog.csdn.net/Scirhh/article/details/86586187
版权声明:本文为博主原创文章,转载请附上博文链接!

mysql 主从复制不一致,不停库不锁表恢复主从同步的更多相关文章

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

    简介 Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写).备份时,Xtrabackup 会将 Master 的 b ...

  2. 从库因为sql错误导致主从同步被中断的问题解决

    从库因为sql错误导致主从同步被中断的问题解决:show slave status\G;看lasterror:看延迟多少秒,正常情况下是没有延迟的. 跳过错误的那条sql:SET GLOBAL SQL ...

  3. Mysql 锁库与锁表

    一.全局锁表 1.FLUSH TABLES WITH READ LOCK 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读.一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操 ...

  4. 重新学习Mysql数据13:Mysql主从复制,读写分离,分表分库策略与实践

    一.MySQL扩展具体的实现方式 随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量. 关于数据库的扩展主要包括:业务拆分.主从复制.读写分离.数据库分库 ...

  5. mysql更新(三)语句 库的操作 表的操作

    04-初始mysql语句   本节课先对mysql的基本语法初体验. 操作文件夹(库) 增 create database db1 charset utf8; 查 # 查看当前创建的数据库 show ...

  6. 搭建mysql主从复制和删库数据恢复策略

    搭建主从复制 主机: [mysqld] 下增加 vim /etc/my.cnf ## 设置 server_id,一般设置为 IP server_id=8 # # 复制过滤:需要备份的数据库,输出 bi ...

  7. mysql批量update操作时出现锁表

    https://www.cnblogs.com/wodebudong/articles/7976474.html 最近遇到一件锁表的情况,发现更新的语句where检索的字段,没有建索引,且是批量操作的 ...

  8. Mysql 通过information_schema爆库,爆表,爆字段

    MySQL版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名. 列名.对应权限等),通过这个数据库,我们就可以跨库查询,爆表爆列. 若要从这些视 ...

  9. mysql批量更新update中的锁表机制

    mysql的行锁是通过索引加载的,即行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁. CREATE TABLE SIMPLE_USER( I ...

随机推荐

  1. jquery(第一章)认识jquery

    Jquery对象就是通过JQuery包装DOM对象后产生的对象,在JQuery对象中无法使用DOM对象的任何方法. 1.4.2 JQuery对象的和DOM对象的互相转换 若获取的对象是JQuery对象 ...

  2. vue中可以自定义动画的前缀

    vue中可以自定义动画的前缀1.只需在中加入name属性即可 <transition name="my"> <h6 v-if="flag2"& ...

  3. oracle杀死正在执行的进程

    1 查询目前正在执行的终端和进程, SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL ...

  4. 【Jmeter源码解读】001——目录结构

    1.顶层目录 bin - 包含.bat 和 . sh 这些文件用于启动JMeter.同时也包含了ApacheJmeter.jar 和 相关的配置文件 build - build 脚本创建的目录,存放一 ...

  5. springboot集成mongoDB简易使用

    1.首先是添加Spring Data mongo的配置依赖 <dependency> <groupId>org.springframework.boot</groupId ...

  6. Kubernetes---Pod笔记

    ⒈pod的理解     将多个容器镜像融合在一起,共享网络命名空间及容器卷 ⒉pod的分类 自助式podv          不是被控制器管理的pod,它一旦死亡不会被人给拉起来. 控制器管理的pod ...

  7. python — 协程

    1. 协程 1.1 协程基础 1.协程 :能够在一个线程下的多个任务之间来回切换,那么每一个任务都是一个协程. 2.协程的优点: 1.一个线程中的阻塞都被其他的各种任务沾满了 2.让操作系统觉得这个线 ...

  8. getContextPath、getServletPath、getRequestURI、getRealPath、getRequestURL、getPathInfo();的区别

    <% out.println("getContextPath: "+request.getContextPath()+"<br/>"); ou ...

  9. Docker 容器学习笔记

    Docker 诞生于2013年,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目逐渐形成了围绕Docker容器的生态体系,由于Docker在业界造成的影 ...

  10. 分布式session一致性问题

    1.分布式session一致性 :指服务器集群情况下session共享的问题. 2.session的作用:保存服务器(tomcat)与客户端(浏览器)整个通讯的会话基本信息. 3.session应用场 ...