首页 >

mysql 主从同步跳过 |mysql 批量执行 c

MySQL几大特点,liunx系统mysql安装,mysql jdbc驱动的名字,mysql多个表join on,mysql 多字段排名,mysql 批量执行 cmysql 主从同步跳过 |mysql 批量执行 c

主从同步是通过在主服务器上创建binlog日志文件,然后在从服务器上启动slave IO线程,将binlog日志文件内容复制到从服务器上的relay log日志文件中,最后在从服务器上通过slave SQL线程将relay log的日志文件内容执行,从而达到主从同步的目的。

有时候,可能会出现一些异常情况,导致主从同步跳过。比如,在主服务器上发生了不允许复制的语句,或者从服务器的IO线程与主服务器失去了连接等。这些问题都可能导致主从同步过程中跳过一些日志。

例如:
2018-07-31T10:29:10.924040Z 9 [System] [MY-010597] [Repl] Slave SQL for channel '': executing
# at 814
#180730 22:13:28 server id 1  end_log_pos 920   Query   thread_id=53179  exec_time=0   error_code=0
SET TIMESTAMP=1532986408/*!*/;
UPDATE db.table SET c=2 WHERE id=1
/*!*/;
2018-07-31T10:29:10.926170Z 9 [System] [MY-010597] [Repl] Slave SQL for channel '': executing
# at 821
#180730 22:25:13 server id 1  end_log_pos 1146  Query   thread_id=53180  exec_time=0   error_code=0
SET TIMESTAMP=1532987113/*!*/;
UPDATE db.table SET c=3 WHERE id=1
/*!*/;
2018-07-31T10:29:10.929533Z 9 [System] [MY-010597] [Repl] Slave SQL for channel '': executing
# at 828
#180730 22:26:39 server id 1  end_log_pos 1263  Query   thread_id=53181  exec_time=0   error_code=0
SET TIMESTAMP=1532987199/*!*/;
COMMIT

在上述例子中,由于从服务器的执行中断,导致第一条更新语句没有被成功执行。因为在执行第二条语句时,从服务器已经丢失了第一条语句。在这种情况下,从服务器将会找不到更新语句,因此同步将终止。

为了避免上述问题的发生,大家可以通过以下方法解决主从同步跳过问题。一、设置slave_skip_errors参数。该参数可以让从服务器跳过某些指定的错误,继续进行同步。例如,大家可以将该参数设置为“1062”,即跳过主键冲突的错误。二、使用mysqlbinlog命令手动恢复跳过的日志。这种方法需要从主服务器上获取跳过的日志,并手动将其应用到从服务器上。三、对主库进行数据清洁,避免不允许复制的语句在主从同步过程中出现。在进行数据操作时,应该谨慎检查,避免出现无法复制的语句。

总结来说,主从同步是MySQL中常用的一种数据复制方式,但是在使用时需要注意各种异常情况,避免造成数据不一致和丢失。同时,也可以根据实际情况选择适当的解决方法,确保主从同步的可靠性和稳定性。


mysql 主从同步跳过 |mysql 批量执行 c
  • mysql 不存在添加字段 |xml网站mysql数据库表
  • mysql 不存在添加字段 |xml网站mysql数据库表 | mysql 不存在添加字段 |xml网站mysql数据库表 ...

    mysql 主从同步跳过 |mysql 批量执行 c
  • mysql平均数分组 |mysql decimal double
  • mysql平均数分组 |mysql decimal double | mysql平均数分组 |mysql decimal double ...

    mysql 主从同步跳过 |mysql 批量执行 c
  • mysql导出数据库少表 |mysql 注入 绕过单引号
  • mysql导出数据库少表 |mysql 注入 绕过单引号 | mysql导出数据库少表 |mysql 注入 绕过单引号 ...