Bug #90001 | GTID: Replication failure messages do not indicate the failed uuid:<sequence> | ||
---|---|---|---|
Submitted: | 10 Mar 2018 9:13 | Modified: | 16 Mar 2018 8:57 |
Reporter: | Simon Mudd (OCA) | Email Updates: | |
Status: | Won't fix | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S4 (Feature request) |
Version: | 5.7.21 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | auto-repair, GTID, gtid_next, show slave status, UUID |
[10 Mar 2018 9:13]
Simon Mudd
[10 Mar 2018 9:17]
Simon Mudd
The reason for mentioning the other FR is that it was suggested to me to change slave_exec_mode to 'IDEMPOTENT' and skip the issues that way. Doing so works and leaves a trace in the log files but no counters and can't be done for a fixed number of transactions/statements, whereas the suggested auto-fix mode would include both counters and also not do unsafe changes, so be more trustworthy.
[10 Mar 2018 10:50]
Simon Mudd
Another suggestion which sounds possible is to use SHOW SLAVE STATUS to get the relaylog file/position and then to use SHOW RELAYLOG EVENTS at that position to get the gtid_next value. This seems like a work around which I can use now. All of this is to find the GTID_NEXT value which is working around that this value is not presented to the user. (Using GTID is supposed to be easier than managing file/positions).
[16 Mar 2018 4:59]
MySQL Verification Team
Hello Simon, Thank you for the report and feature request! Regards, Umesh
[16 Mar 2018 8:57]
Sven Sandberg
Posted by developer: The GTID of the transaction that generated the error is exposed in performance_schema.replication_applier_status_by_worker, column LAST_SEEN_TRANSACTION. In 8.0, it is in the same table, column APPLYING_TRANSACTION. So you can execute the empty transaction you need using something like this: SELECT LAST_SEEN_TRANSACTION FROM performance_schema.replication_applier_status_by_worker WHERE LAST_ERROR_NUMBER != 0 LIMIT 1 INTO @error_gtid; SET @@session.gtid_next = @error_gtid; COMMIT; SET @@session.gtid_next = 'AUTOMATIC';