出从挂掉后,从库写数据,原主库重启数据处理

停止原主从复制:在原主库和从库上停止复制进程;
STOP SLAVE;

将从库提升为主库:在从库上执行以下命令重置主从复制状态。
RESET MASTER;


清空原主库数据:在原主库上备份重要数据后,清空相关数据库和表。
配置原主库为新从库:在原主库上配置连接到新主库(原从库),并启动复制。



change master to master_host='192.168.0.107',master_user='wb',master_password='123456',master_port=3307,master_log_file='mysql-bin.000001',master_log_pos=836;

 当 MySQL 主备模式下主库下线,从库进行写操作,而原主库上线后出现数据不一致的情况,这是因为主从复制架构中通常主库负责写操作,从库只进行读操作以保持数据一致。主库下线后从库写数据破坏了这种一致性,以下为你分析可能的解决办法和避免此类问题的措施。

解决数据不一致的方法

1. 评估数据情况

 

  • 确定数据差异:使用工具对比主从库的数据,找出不一致的表和数据行。可以编写 SQL 脚本逐表对比数据的行数、关键列值等,例如对于简单的表可以使用以下 SQL 对比行数:

 

收起
sql
 
-- 在原主库执行
SELECT COUNT(*) FROM your_table;
-- 在从库执行同样的 SQL
SELECT COUNT(*) FROM your_table;

 

  • 分析业务影响:确定不一致的数据对业务的影响程度,哪些数据是可以覆盖的,哪些数据需要合并处理。

2. 选择合适的处理策略

 

  • 数据覆盖(从库数据优先)
    • 如果从库的数据是最新且完整的,可以将从库提升为主库,然后将原主库的数据清空并重新进行主从复制配置,使原主库成为新的从库。操作步骤如下:
      • 停止原主从复制:在原主库和从库上停止复制进程。

 

收起
sql
 
-- 在原主库和从库上执行
STOP SLAVE;

 

  • 将从库提升为主库:在从库上执行以下命令重置主从复制状态。

 

收起
sql
 
RESET MASTER;

 

  • 清空原主库数据:在原主库上备份重要数据后,清空相关数据库和表。
  • 配置原主库为新从库:在原主库上配置连接到新主库(原从库),并启动复制。

 

收起
sql
 
-- 在原主库上配置连接信息
CHANGE MASTER TO
    MASTER_HOST='new_master_ip',
    MASTER_USER='replication_user',
    MASTER_PASSWORD='replication_password',
    MASTER_PORT=3306,
    MASTER_LOG_FILE='new_master_log_file',
    MASTER_LOG_POS=new_master_log_pos;
-- 启动复制
START SLAVE;
posted @ 2025-01-27 21:53  余生请多指教ANT  阅读(19)  评论(0)    收藏  举报