当前位置: 首页 > news >正文

MySQL 主从同步异常使用mysqldump修复

MySQL 主从同步异常使用mysqldump修复

场景描述:
MySQL一主一从架构,使用GTID模式同步,无意中测试发现恢复过程中会丢失数据。
如下模拟整个恢复过程。

测试1 丢失数据

模拟从库宕机同步失败

mysqldump备份之前主库数据

主库备份:

[root@mongodb1 tmp]# mysqldump -uroot -p -S /usr/local/mysql/data/mysql.sock --source-data=2 --single-transaction --all-databases --triggers --routines --events > /tmp/alldb0303.sql Enter password:

拷贝备份到从库

[root@mongodb1 tmp]# scp alldb0303.sql root@192.168.56.101:/tmp root@192.168.56.101's password: alldb0303.sql 100% 2287KB 90.6MB/s 00:00 [root@mongodb1 tmp]#

从库恢复数据模拟主库插入数据

从库恢复数据

mysql> stop slave ; Query OK, 0 rows affected, 2 warnings (0.00 sec) mysql> reset slave all; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> source /tmp/alldb0303.sql 忽略 。。。。 mysql> change master to -> master_host='192.168.56.100', -> master_port=3306, -> master_user='root', -> master_password='Bai_yun123', -> master_auto_position=1; Query OK, 0 rows affected, 8 warnings (0.09 sec) mysql> start slave; Query OK, 0 rows affected, 1 warning (0.07 sec) mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for source to send event Master_Host: 192.168.56.100 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 1720 Relay_Log_File: mongodb2-relay-bin.000002 Relay_Log_Pos: 420 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 1720 Relay_Log_Space: 633 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 100 Master_UUID: 27270078-0cd4-11f1-9b0c-0800274c0fb9 Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: <<<<<< Executed_Gtid_Set: 27270078-0cd4-11f1-9b0c-0800274c0fb9:1-14 Auto_Position: 1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0 Network_Namespace: 1 row in set, 1 warning (0.00 sec) mysql>

可以看到 Retrieved_Gtid_Set: 为空。

发现主库变更的数据1000没有同步到从库。

mysql> select * from demodb.tab22; +-----+ | tid | +-----+ | 100 | | 102 | | 103 | | 300 | | 332 | +-----+ 5 rows in set (0.00 sec) mysql>

主库再插入数据

mysql> insert into tab22 values(1002); Query OK, 1 row affected (0.04 sec) mysql> commit; Query OK, 0 rows affected (0.00 sec) mysql> select * from tab22; +------+ | tid | +------+ | 100 | | 102 | | 103 | | 300 | | 332 | | 1000 | | 1002 | +------+ 7 rows in set (0.00 sec) mysql>

从库查看数据,发现1000是丢失了没有同步过来。

测试2 无数据丢失

重新恢复一次数据,

mysql> stop slave; Query OK, 0 rows affected, 1 warning (0.06 sec) mysql> reset slave all; Query OK, 0 rows affected, 1 warning (0.09 sec) mysql> reset master; <<<<<<< Query OK, 0 rows affected (0.07 sec) mysql> source /tmp/alldb0303.sql

mysql> change master to -> master_host='192.168.56.100', -> master_port=3306, -> master_user='root', -> master_password='Bai_yun123', -> master_auto_position=1; Query OK, 0 rows affected, 8 warnings (0.14 sec) mysql> start slave; Query OK, 0 rows affected, 1 warning (0.06 sec) mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for source to send event Master_Host: 192.168.56.100 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 2000 Relay_Log_File: mongodb2-relay-bin.000002 Relay_Log_Pos: 980 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 2000 Relay_Log_Space: 1193 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 100 Master_UUID: 27270078-0cd4-11f1-9b0c-0800274c0fb9 Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: 27270078-0cd4-11f1-9b0c-0800274c0fb9:14-15 Executed_Gtid_Set: 27270078-0cd4-11f1-9b0c-0800274c0fb9:1-15 Auto_Position: 1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0 Network_Namespace: 1 row in set, 1 warning (0.00 sec) mysql>

主库在恢复过程中新增的数据有同步过来

总结

第一次和第二次的区别是在从库恢复数据之前多了一个步骤reset master;

主库再次插入数据

从库同步正常

http://www.jsqmd.com/news/434019/

相关文章:

  • 2026年口碑好的缠绕卷膜加工/五金类卷膜加工品牌厂家哪家靠谱 - 品牌宣传支持者
  • 【2025最新】基于SpringBoot+Vue的健美操评分系统管理系统源码+MyBatis+MySQL
  • 2026高温加热解决方案:石墨烯发热片、高温 PI 发热膜厂家、350度PI发热膜推荐,广臻PI高温发热膜耐温强、寿命长 - 栗子测评
  • 中山留学机构哪家好?中山留学中介哪家好?2026年一站式留学服务机构优选推荐:粤教国际教育领衔,中山留学咨询盘点 - 栗子测评
  • 2026耐高温发热膜怎么选?石墨烯发热片、高温PI发热膜、350度PI发热膜推荐,广臻PI高温发热膜性能达标、售后完善 - 栗子测评
  • 新加坡留学机构哪个好?德国留学机构哪个好?2026年一站式留学服务机构优选推荐:粤教国际教育领衔 - 栗子测评
  • 【毕业设计】SpringBoot+Vue+MySQL 科研管理系统平台源码+数据库+论文+部署文档
  • Java SpringBoot+Vue3+MyBatis 心脏病数据分析系统系统源码|前后端分离+MySQL数据库
  • 科研管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 广东企业申报项目代办公司哪家好?广东科技项目申报代理机构有哪些?2026年广东科技项目申报咨询机构推荐:鼎驰信息科技领衔 - 栗子测评
  • 广东企业研发费规范辅导机构哪家好?2026年广东研发费合规提升机构推荐:鼎驰信息科技领衔 - 栗子测评
  • 2026企业咨询培训公司精选推荐:升维咨询专注赋能 - 栗子测评
  • 【算法练习】动态规划:哈希表保存状态(一)
  • 【ProtoBuf】使用序列化
  • 2026网裂贴生产厂家盘点:网裂贴厂家有哪些?防裂贴厂家推荐全汇总 - 栗子测评
  • 2026国内战略咨询公司优选推荐:升维咨询专业领衔 - 栗子测评
  • 2026年热门的耐高温汽车高压线/耐磨汽车高压线源头厂家推荐几家 - 品牌宣传支持者
  • 2026年口碑好的薄壁滤芯机器生产商哪家强 - 品牌宣传支持者
  • 2026年优质制氮机生产厂家推荐:苏州恒大净化领衔,专业防爆制氮机厂家/PSA制氮机厂家/ 食品制氮机厂家汇总 - 栗子测评
  • 2026贴缝带优选指南:贴缝带哪个厂家好,工程采购必看推荐 - 栗子测评
  • 2026冷补料厂家哪家好:品质与口碑双优榜单盘点 - 栗子测评
  • 2026生产乳化沥青厂家有哪些大全:沥青砂哪个厂家质量好 - 栗子测评
  • 99.5%制氧机生产厂家哪家好?2026年正规制氧机生产厂家实力推荐:苏州恒大净化领衔 - 栗子测评
  • 医用制氧机哪家好?2026年医用制氧机厂家权威推荐:苏州恒大净化领衔,靠谱品牌与实力工厂选购指南全解析 - 栗子测评
  • 2026灌缝机哪个品牌好:附山东润昇工程材料有限公司实力深度测评 - 栗子测评
  • 2026灌缝胶厂家精选:灌封胶哪家好?哪家公司的灌封胶好?一文看懂 - 栗子测评
  • 2026年制氮机哪家好?优质制氮机公司推荐:苏州恒大净化领衔,靠谱制氮机生产厂家/高纯制氮机工厂精选 - 栗子测评
  • 2026资深聚氨酯砂浆地坪厂家推荐:杭州京越建材科技专业护航 - 栗子测评
  • Markdown 图片
  • 2026优质水性聚氨酯砂浆地坪公司推荐:杭州京越建材科技实力优选 - 栗子测评