Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
Description
The mysqlbinlog client program needs to be updated to support GTID.
Here is a suggested list of things to be done:
- The --start-position and --stop-position options should be able to take
GTID positions; or maybe there should be new --start-gtid and --stop-gtid
options. Like --start-gtid=0-1-100,1-2-200,2-1-1000.
- A GTID position means the point just after that GTID. So starting from
GTID 0-1-100 and stopping at GTID 0-1-200, the first GTID output will
probably be 0-1-101 and the last one 0-1-200. Note that if some domain is
not specified in the position, it means to start from the begining,
respectively stop immediately in that domain.
- Starting and stopping GTID should work both with local files, and with
--read-from-remote-server. For the latter, there are a couple of extra
things that need doing in the master-slave protocol, see
get_master_version_and_clock() in sql/slave.cc.
- At the end of the dump, put these statements, to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session:
SET session.server_id = @@global.server_id,
session.gtid_domain_id=@@global.gtid_domain_id;
Probably some more things will come up during the work, but this looks like a
reasonable start.
Attachments
Issue Links
- causes
-
MDEV-29803 Unexpected ERROR: Found out of order GTID after replaying binlog read from remote
-
- Open
-
- is part of
-
MDEV-27373 Q1 2022 release merge
-
- Closed
-
- relates to
-
MDEV-20119 Implement the --do-domain-ids, --ignore-domain-ids, and --ignore-server-ids options for mysqlbinlog
-
- Closed
-
-
MXS-2589 Adapt binlog router to
-
- Closed
-
-
MDEV-25348 Using Point-in-time-Recovery with mysqlbinlog without GTIDs
-
- Open
-
-
MXS-2581 Support DO_DOMAIN_IDS and IGNORE_DOMAIN_IDS for the Binlog Router
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Description |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id {code} at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. |
Labels | gtid | gsoc14 gtid |
Assignee | Kristian Nielsen [ knielsen ] |
Fix Version/s | 10.1.0 [ 12200 ] |
Issue Type | Bug [ 1 ] | Task [ 3 ] |
Description |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id {code} at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id {code} at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. |
Description |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id {code} at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id {code} at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. I think, the first step should be to make a list over all the ways that mysqlbinlog currently processes old-style binlog positions (file+offset) in any way. And then make suggestions for how mysqlbinlog should do the similar task with GTID. |
Labels | gsoc14 gtid | gsoc14 gtid replication |
Labels | gsoc14 gtid replication | gsoc14 gtid mysqlbinlog replication |
Assignee | Kristian Nielsen [ knielsen ] |
Priority | Major [ 3 ] | Minor [ 4 ] |
Workflow | defaullt [ 28813 ] | MariaDB v2 [ 43761 ] |
Fix Version/s | 10.1 [ 16100 ] | |
Fix Version/s | 10.1.0 [ 12200 ] |
Priority | Minor [ 4 ] | Critical [ 2 ] |
Priority | Critical [ 2 ] | Minor [ 4 ] |
Fix Version/s | 10.1 [ 16100 ] |
Fix Version/s | 10.2.0 [ 14601 ] |
Labels | gsoc14 gtid mysqlbinlog replication | gsoc14 gsoc15 gtid mysqlbinlog replication |
Description |
The mysqlbinlog client program needs to be updated to support GTID. At least it should be possible to start and stop the dump from given GTID positions. Both when reading binlog files off-line and when connecting to a running server. Also, mysqlbinlog should put at the end of the dump the statement {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id {code} at the end to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session. I think, the first step should be to make a list over all the ways that mysqlbinlog currently processes old-style binlog positions (file+offset) in any way. And then make suggestions for how mysqlbinlog should do the similar task with GTID. |
The mysqlbinlog client program needs to be updated to support GTID. Here is a suggested list of things to be done: - The --start-position and --stop-position options should be able to take GTID positions; or maybe there should be new --start-gtid and --stop-gtid options. Like "--start-gtid=0-1-100,1-2-200,2-1-1000". - A GTID position means the point just _after_ that GTID. So starting from GTID 0-1-100 and stopping at GTID 0-1-200, the first GTID output will probably be 0-1-101 and the last one 0-1-200. Note that if some domain is not specified in the position, it means to start from the begining, respectively stop immediately in that domain. - Starting and stopping GTID should work both with local files, and with --read-from-remote-server. For the latter, there are a couple of extra things that need doing in the master-slave protocol, see get_master_version_and_clock() in sql/slave.cc. - At the end of the dump, put these statements, to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session: SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id; Probably some more things will come up during the work, but this looks like a reasonable start. |
Workflow | MariaDB v2 [ 43761 ] | MariaDB v3 [ 65819 ] |
Fix Version/s | 10.2 [ 14601 ] |
Fix Version/s | 10.2 [ 14601 ] |
Description |
The mysqlbinlog client program needs to be updated to support GTID. Here is a suggested list of things to be done: - The --start-position and --stop-position options should be able to take GTID positions; or maybe there should be new --start-gtid and --stop-gtid options. Like "--start-gtid=0-1-100,1-2-200,2-1-1000". - A GTID position means the point just _after_ that GTID. So starting from GTID 0-1-100 and stopping at GTID 0-1-200, the first GTID output will probably be 0-1-101 and the last one 0-1-200. Note that if some domain is not specified in the position, it means to start from the begining, respectively stop immediately in that domain. - Starting and stopping GTID should work both with local files, and with --read-from-remote-server. For the latter, there are a couple of extra things that need doing in the master-slave protocol, see get_master_version_and_clock() in sql/slave.cc. - At the end of the dump, put these statements, to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session: SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id; Probably some more things will come up during the work, but this looks like a reasonable start. |
The mysqlbinlog client program needs to be updated to support GTID. Here is a suggested list of things to be done: - The {{\-\-start-position}} and {{\-\-stop-position}} options should be able to take GTID positions; or maybe there should be new {{\-\-start-gtid}} and {{\-\-stop-gtid}} options. Like {{--start-gtid=0-1-100,1-2-200,2-1-1000}}. - A GTID position means the point just _after_ that GTID. So starting from GTID 0-1-100 and stopping at GTID 0-1-200, the first GTID output will probably be 0-1-101 and the last one 0-1-200. Note that if some domain is not specified in the position, it means to start from the begining, respectively stop immediately in that domain. - Starting and stopping GTID should work both with local files, and with {{--read-from-remote-server}}. For the latter, there are a couple of extra things that need doing in the master-slave protocol, see {{get_master_version_and_clock()}} in {{sql/slave.cc}}. - At the end of the dump, put these statements, to reduce the risk of those session variables incorrectly spilling into subsequent statements run in the same session: {code:sql} SET session.server_id = @@global.server_id, session.gtid_domain_id=@@global.gtid_domain_id; {code} Probably some more things will come up during the work, but this looks like a reasonable start. |
Labels | gsoc14 gsoc15 gtid mysqlbinlog replication | gsoc14 gsoc15 gsoc16 gtid mysqlbinlog replication |
Labels | gsoc14 gsoc15 gsoc16 gtid mysqlbinlog replication | gsoc14 gsoc15 gsoc16 gsoc17 gtid mysqlbinlog replication |
Fix Version/s | 10.2 [ 14601 ] |
Assignee | Kristian Nielsen [ knielsen ] |
Labels | gsoc14 gsoc15 gsoc16 gsoc17 gtid mysqlbinlog replication | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gtid mysqlbinlog replication |
Labels | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gtid mysqlbinlog replication | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gtid mysqlbinlog replication |
Assignee | Andrei Elkin [ elkin ] |
Link |
This issue relates to |
Component/s | Replication [ 10100 ] | |
Component/s | Scripts & Clients [ 11002 ] |
Priority | Minor [ 4 ] | Major [ 3 ] |
Assignee | Andrei Elkin [ elkin ] | Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] |
Assignee | Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] | Andrei Elkin [ elkin ] |
Labels | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gtid mysqlbinlog replication | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gtid mysqlbinlog replication |
Labels | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gtid mysqlbinlog replication | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gsoc21 gtid mysqlbinlog replication |
Link | This issue relates to MDEV-25348 [ MDEV-25348 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Fix Version/s | 10.7 [ 24805 ] |
Due Date | 2021-09-14 |
Assignee | Andrei Elkin [ elkin ] | Brandon Nesterenko [ JIRAUSER48702 ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
Assignee | Brandon Nesterenko [ JIRAUSER48702 ] | Andrei Elkin [ elkin ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Priority | Critical [ 2 ] | Major [ 3 ] |
Due Date | 2021-09-14 |
Fix Version/s | 10.8 [ 26121 ] | |
Fix Version/s | 10.7 [ 24805 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Workflow | MariaDB v3 [ 65819 ] | MariaDB v4 [ 131756 ] |
Status | In Review [ 10002 ] | In Testing [ 10301 ] |
Assignee | Andrei Elkin [ elkin ] | Alice Sherepa [ alice ] |
Link |
This issue is part of |
Status | In Testing [ 10301 ] | Stalled [ 10000 ] |
Assignee | Alice Sherepa [ alice ] | Andrei Elkin [ elkin ] |
Fix Version/s | 10.8.1 [ 26815 ] | |
Fix Version/s | 10.8 [ 26121 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Assignee | Andrei Elkin [ elkin ] | Brandon Nesterenko [ JIRAUSER48702 ] |
Link | This issue causes MDEV-29803 [ MDEV-29803 ] |
Labels | gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gsoc21 gtid mysqlbinlog replication | Preview_10.8 gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gsoc21 gtid mysqlbinlog replication |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36745 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36745 ] |
Zendesk Related Tickets | 125514 200444 175152 125268 |