首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL GTID从站中由于MySQL 5.7GTID母版误“复位母版”而产生的错误1236

MySQL GTID从站中由于MySQL 5.7GTID母版误“复位母版”而产生的错误1236
EN

Database Administration用户
提问于 2022-10-21 07:50:12
回答 1查看 216关注 0票数 0

事件顺序:

  1. 禁用MySQL 8从站中的二进制日志,并在mysqld.cnf中使用以下相关参数:
代码语言:javascript
复制
log-replica-updates = OFF
gtid-mode = ON
enforce-gtid-consistency = ON
master-info-repository = TABLE
relay-log-info-repository = TABLE
relay_log_recovery = ON
sync-master-info = 1
innodb_flush_log_at_trx_commit = 2
sync_binlog = 0
slave-preserve-commit-order = ON
# binlog_expire_logs_seconds    = 2592000
#max_binlog_size   = 100M
  1. 在禁用MySQL 8从服务器中的二进制日志之前没有清除二进制日志
  2. 通过取消注释重新启用二进制日志记录:
代码语言:javascript
复制
# binlog_expire_logs_seconds    = 2592000
# max_binlog_size   = 100M

和评论:

代码语言:javascript
复制
disable-log-bin

而不是在reset master 8从服务器上执行MySQL,而是在复制运行时错误地在MySQL 5.7主程序上执行命令reset master

  1. 母版中没有二进制日志的备份。
  2. 清除并重新安装MySQL 8从服务器,还原备份(在主服务器上执行:
代码语言:javascript
复制
mysqldump -u root -p --all-databases --flush-logs \
 --single-transaction --routines --triggers --events \
 --master-data=2 > alldbs.sql 
  1. 使用MySQL主5.7和MySQL从8.0重新配置GTID复制。

来自MySQL 5.7主mysqld.cnf的相关参数:

代码语言:javascript
复制
binlog-format = ROW
log-slave-updates = ON
gtid-mode = ON
enforce-gtid-consistency = ON
master-info-repository = TABLE
relay-log-info-repository = TABLE
sync-master-info = 1
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
binlog-transaction-dependency-tracking = COMMIT_ORDER
  1. 观察到一个错误:

1236: Last_IO_Error:当从二进制日志读取数据时,从主日志中读取数据时获得了致命错误1236:“从服务器具有比主日志更多的GTID,使用主程序的SERVER_UUID。这可能表示二进制日志的结束被截断,或者最后一个二进制日志文件丢失了,例如,当sync_binlog != 1时发生电源或磁盘故障之后。主服务器可能已经或没有回滚已复制到从服务器的事务。建议复制主从从回滚到主程序的任何事务,并/或将主服务器上的空事务提交给已处理的事务

如何重新配置GTID复制?

EN

回答 1

Database Administration用户

发布于 2022-10-22 23:57:03

使用以下步骤配置复制:

  1. 在从站中清除和重新安装MySQL 8
  2. 启用二进制日志记录功能:
代码语言:javascript
复制
   binlog_expire_logs_seconds = 86400
   log-replica-updates = OFF 
  1. 从师父那里得到了支持:
代码语言:javascript
复制
   mysqldump -u root -p --all-databases --flush-logs --single-transaction \
    --routines    --triggers --events --master-data=2 > alldbs-23Oct2022
  1. 恢复奴隶的后援
  2. 开始复制:
代码语言:javascript
复制
   CHANGE REPLICATION SOURCE TO SOURCE_HOST="w.x.y.z", 
    SOURCE_USER="username", SOURCE_PASSWORD="Password",   
    SOURCE_AUTO_POSITION=1;
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/318501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档