Details

    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

          Activity

            knielsen Kristian Nielsen created issue -
            serg Sergei Golubchik made changes -
            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.
            serg Sergei Golubchik made changes -
            Labels gtid gsoc14 gtid
            serg Sergei Golubchik made changes -
            Assignee Kristian Nielsen [ knielsen ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.1.0 [ 12200 ]
            serg Sergei Golubchik made changes -
            Issue Type Bug [ 1 ] Task [ 3 ]
            serg Sergei Golubchik made changes -
            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.
            knielsen Kristian Nielsen made changes -
            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.
            serg Sergei Golubchik made changes -
            Labels gsoc14 gtid gsoc14 gtid replication
            colin Colin Charles made changes -
            Labels gsoc14 gtid replication gsoc14 gtid mysqlbinlog replication
            dbart Daniel Bartholomew made changes -
            Assignee Kristian Nielsen [ knielsen ]
            dbart Daniel Bartholomew made changes -
            Priority Major [ 3 ] Minor [ 4 ]
            serg Sergei Golubchik made changes -
            Workflow defaullt [ 28813 ] MariaDB v2 [ 43761 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.1 [ 16100 ]
            Fix Version/s 10.1.0 [ 12200 ]
            knielsen Kristian Nielsen made changes -
            Priority Minor [ 4 ] Critical [ 2 ]
            knielsen Kristian Nielsen made changes -
            Priority Critical [ 2 ] Minor [ 4 ]
            knielsen Kristian Nielsen made changes -
            Fix Version/s 10.1 [ 16100 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.2.0 [ 14601 ]
            serg Sergei Golubchik made changes -
            Labels gsoc14 gtid mysqlbinlog replication gsoc14 gsoc15 gtid mysqlbinlog replication
            knielsen Kristian Nielsen made changes -
            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.
            ratzpo Rasmus Johansson (Inactive) made changes -
            Workflow MariaDB v2 [ 43761 ] MariaDB v3 [ 65819 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.2 [ 14601 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.2 [ 14601 ]
            serg Sergei Golubchik made changes -
            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.
            colin Colin Charles made changes -
            Labels gsoc14 gsoc15 gtid mysqlbinlog replication gsoc14 gsoc15 gsoc16 gtid mysqlbinlog replication
            serg Sergei Golubchik made changes -
            Labels gsoc14 gsoc15 gsoc16 gtid mysqlbinlog replication gsoc14 gsoc15 gsoc16 gsoc17 gtid mysqlbinlog replication
            serg Sergei Golubchik made changes -
            Fix Version/s 10.2 [ 14601 ]
            serg Sergei Golubchik made changes -
            Assignee Kristian Nielsen [ knielsen ]
            serg Sergei Golubchik made changes -
            Labels gsoc14 gsoc15 gsoc16 gsoc17 gtid mysqlbinlog replication gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gtid mysqlbinlog replication
            ratzpo Rasmus Johansson (Inactive) made changes -
            Labels gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gtid mysqlbinlog replication gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gtid mysqlbinlog replication
            serg Sergei Golubchik made changes -
            Assignee Andrei Elkin [ elkin ]
            Richard Richard Stracke made changes -
            Richard Richard Stracke made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            Component/s Replication [ 10100 ]
            Component/s Scripts & Clients [ 11002 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            julien.fritsch Julien Fritsch made changes -
            Assignee Andrei Elkin [ elkin ] Ralf Gebhardt [ ralf.gebhardt@mariadb.com ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Assignee Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] Andrei Elkin [ elkin ]
            cvicentiu Vicențiu Ciorbaru made changes -
            Labels gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gtid mysqlbinlog replication gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gtid mysqlbinlog replication
            robertbindar Robert Bindar made changes -
            Labels gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gtid mysqlbinlog replication gsoc14 gsoc15 gsoc16 gsoc17 gsoc18 gsoc19 gsoc20 gsoc21 gtid mysqlbinlog replication
            greenman Ian Gilfillan made changes -
            ccalender Chris Calender (Inactive) made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.7 [ 24805 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Due Date 2021-09-14
            Elkin Andrei Elkin made changes -
            Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]
            bnestere Brandon Nesterenko made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            bnestere Brandon Nesterenko made changes -
            Assignee Brandon Nesterenko [ JIRAUSER48702 ] Andrei Elkin [ elkin ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            serg Sergei Golubchik made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Due Date 2021-09-14
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.7 [ 24805 ]
            serg Sergei Golubchik made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 65819 ] MariaDB v4 [ 131756 ]
            serg Sergei Golubchik made changes -
            Status In Review [ 10002 ] In Testing [ 10301 ]
            serg Sergei Golubchik made changes -
            Assignee Andrei Elkin [ elkin ] Alice Sherepa [ alice ]
            serg Sergei Golubchik made changes -
            alice Alice Sherepa made changes -
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            alice Alice Sherepa made changes -
            Assignee Alice Sherepa [ alice ] Andrei Elkin [ elkin ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.8.1 [ 26815 ]
            Fix Version/s 10.8 [ 26121 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            serg Sergei Golubchik made changes -
            Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]
            elenst Elena Stepanova made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            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
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            mariadb-jira-automation Jira Automation (IT) made changes -
            Zendesk Related Tickets 125514 200444 175152 125268

            People

              bnestere Brandon Nesterenko
              knielsen Kristian Nielsen
              Votes:
              23 Vote for this issue
              Watchers:
              30 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.