gpt4 book ai didi

MySQL 错误 1236 使用 GTID 时

转载 作者:可可西里 更新时间:2023-11-01 08:39:41 24 4
gpt4 key购买 nike

我想在启用 GTID 的情况下为我的 Percona 服务器创建一个副本,但是当我显示从属状态时出现此错误:

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.'

通常,我会停止我的从站,重置它,重置主站(在从站上),并从主站获取新的 GTID_PURGED 值。但是这一次,master 有一个非常不寻常的值,我不确定如何确定要使用哪个值:

mysql> show master status\G
*************************** 1. row ***************************
File: mysqld-bin.000283
Position: 316137263
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 1570dee1-165b-11e6-a4a2-00e081e93212:1-3537,
c73f3ee7-e8d4-ee19-6507-f898a9930ccd:1-18609,
cdb70eaa-f753-ee1b-5c95-ecb8024ae729:1-2357789559:2357789561-2357790104:2357790106-2514115701:2514115703-2514115705:2514115707-2546512667
1 row in set (0.00 sec)

从具有新备份副本的从机,我得到这个:

root@ubuntu:/var/lib/mysql# cat xtrabackup_binlog_info
mysqld-bin.000283 294922064 1570dee1-165b-11e6-a4a2-00e081e93212:1-3537,
c73f3ee7-e8d4-ee19-6507-f898a9930ccd:1-18609,
cdb70eaa-f753-ee1b-5c95-ecb8024ae729:1-2357789559:2357789561-2357790104:2357790106-2514115701:2514115703-2514115705:2514115707-2546400960

还有一件事,我只是在备份之前清除了 master 上的二进制日志。自动 binlog 清除设置为 7 天。所以我知道这不是因为 bin 日志已按照错误提示被清除。

我正在运行 Ubuntu 14:04 和 Percona 服务器版本 5.6.31-77。

我该如何解决这个问题? master 的 GTID_PURGED 的正确值是多少?

最佳答案

mysql 5.6 GTID 复制错误和修复什么是 GTID? 

4c2ad77f-697e-11e3-b2c3-c80aa9f17dc4
  • 这是服务器的 128 位标识号 (SERVER_UUID)。它标识交易的起源地。每个服务器都有自己的 SERVER_UUID。GTID 解决了什么问题?

  • 可以跨复制服务器唯一地标识事务。使故障转移过程的自动化更加容易。不需要做计算,检查二进制日志等等。只需 MASTER_AUTO_POSITION=1。

  • 在应用程序级别,更容易进行 WRITE/READ 拆分。在 MASTER 上写入后,您有一个 GTID,因此只需检查该 GTID 是否已在您用于读取的 SLAVE 上执行。
  • 现在开发新的自动化工具并不难。我该如何实现?

复制链的所有服务器都需要三个变量

  • gtid_mode:它可以是 ON 或 OFF(不是 1 或 0)。它在服务器上启用 GTID。
  • log_bin:启用二进制日志。必须创建复制环境。
  • log-slave-updates:从服务器必须在自己的二进制日志中记录来自主服务器的更改。
  • enforce-gtid-consistency:不能以事务安全方式记录的语句被服务器拒绝。引用:http://dev.mysql.com/doc/refman/5.6/en/replication-gtids-howto.html

复制错误和修复:

"'Got fatal error 1236 from master when reading data from binary log: "The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires." slave_io thread stop running.

解决:考虑以下是主-从UUID的

MASTER UUID: 4c2ad77f-697e-11e3-b2c3-c80aa9f17dc4
SLAVE UUID: 5b37def1-6189-11e3-bee0-e89a8f22a444

步骤:

slave>stop slave;

slave> FLUSH TABLES WITH READ LOCK;

slave>show master status;

'4c2ad77f-697e-11e3-b2c3-c80aa9f17dc4:1-83345127,5b37def1-6189-11e3-bee0-e89a8f22a444:1-13030:13032-13317:13322-13325:13328-653183:653185-654126:654128-1400817:1400820-3423394:3423401-5779965′

(HERE 83345127 Last GTID executed on master and 5779965 Last slave GTID executed on Master )

slave> reset master;

slave>set global GTID_PURGED='4c2ad77f-697e-11e3-b2c3-c80aa9f17dc4:1-83345127,5b37def1-6189-11e3-bee0-e89a8f22a444:1-5779965′;

slave>start slave;

slave>unlock tables;

slave>show slave status;

注意:在此之后,如果其他链从站停止复制,则重新启动从站;

ERROR: 'Error "Table … 'doesn"t exist" on query. Default database: …Query: "INSERT INTO OR Last_SQL_Error: ….Error 'Duplicate entry' SKIP Transaction on slave (slave_sql Thread stop running) NOTE:

  • SQL_SLAVE_SKIP_COUNTER 不再适用于 GTID。
  • 我们需要找到导致复制失败的事务。
    • – 来自二进制日志
    • – 来自 SHOW SLAVE STATUS(检索与执行)错误类型:(检查 show slave status 中的最后一个 sql 错误)

解决:考虑以下是主-从UUID的

MASTER UUID: 4c2ad77f-697e-11e3-b2c3-c80aa9f17dc4
SLAVE UUID: 5b37def1-6189-11e3-bee0-e89a8f22a444

slave>显示slave状态;

复制“Executed_Gtid_Set”值。 '4c2ad77f-697e-11e3-b2c3-c80aa9f17dc4:1-659731804,5b37def1-6189-11e3-bee0-e89a8f22a444:1-70734947-80436012:80436021-80437839'

-似乎从属(uuid 5b37def1-6189-11e3-bee0-e89a8f22a444)事务“80437840”导致了这里的问题。

slave> STOP SLAVE;

slave> SET GTID_NEXT="5b37def1-6189-11e3-bee0-e89a8f22a444:80437840"; (last_executed_slave_gtid_on_master + 1)

slave> BEGIN; COMMIT;

slave> SET GTID_NEXT="AUTOMATIC";

slave> START SLAVE;

slave> show slave status;

一切就绪!!!

关于MySQL 错误 1236 使用 GTID 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com