注意: 进行此操作时,确认在之前已经开启了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. Java基础语法知识你真的都会吗?

    第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...

  2. IDEA配置之tomcat相关配置

    1. tomcat起服务时, 日志乱码 -server -XX:PermSize=512M -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8 设置tomcat参数

  3. Mac安装postgresql和卸载PostgreSQL

    1.homebrew安装 brew install postgresql 2.初始化 initdb /usr/local/var/postgres 3.创建数据库及查看数据库 (1)先创建db. cr ...

  4. Mybatis 批量操作以及多参数操作遇到的坑

    查考地址:https://blog.csdn.net/shengtianbanzi_/article/details/80147134 待整理中......

  5. Proxy 和aop

    Proxy 就是代理,意思就是 你不用去做,别人代替你去处理 先来个静态代理 public interface Hello { void say(String name); } 被代理类 public ...

  6. vscode+php+xdebug won't stop at breakpoint 断点不起作用

    not stopping on breakpoints breakpoint not working 原因: 1) php.ini xdebug 端口不配置的情况下,默认是 9000,如果vscode ...

  7. spark调优篇-Spark ON Yarn 内存管理(汇总)

    本文旨在解析 spark on Yarn 的内存管理,使得 spark 调优思路更加清晰 内存相关参数 spark 是基于内存的计算,spark 调优大部分是针对内存的,了解 spark 内存参数有也 ...

  8. 少儿编程Scratch第三讲:宇宙大战.枪战游戏

    小朋友这周的表现还算不错.周末多数时间都由我陪(bi)着(zhe)做课本上的数学题,后来还学了英语.任重道远啊,语数外都还得加强,还远不到自己就能取得好成绩的阶段. 上周说好这周要做一个发射炮弹的游戏 ...

  9. 使用jenkins 构建时,字体图标报错的问题。

    最近一个项目开发中,我们在本地进行项目打包时,可以正常打包. 但是在使用jenkins构建时,一直报错,提示无法加载字体文件.can't resolve module '....xxxx.TTF ' ...

  10. iview-admin部署linux nginx报500错误的问题记录

    遇到个新服务器部署iview-admin之后 在nginx配置文件有个user配置项 这里需要配置为root或者可以读取本地文件的用户 站点配置如下 server { listen ; server_ ...