Uploaded image for project: 'Percona Toolkit'
  1. Percona Toolkit
  2. PT-1233

LP #1340649: pt-table-sync checks changing binlog_format on slaves and exists if that does not work. (RDS)


    • Bug
    • Status: On Hold
    • Low
    • Resolution: Unresolved
    • None
    • None
    • None


      **Reported in Launchpad by Kenny Gryp last update 28-07-2015 16:53:29

      pt-table-sync connects to all machines and changes the binlog_format=STATEMENT. However, binlog_format cannot be changed when using Amazon RDS (there is no SUPER privilege).

      This breaks pt-table-sync to work with RDS.

      In the example below, checksumming is being done between a regular database system replicating to a RDS system.
      No slaves are attached to the RDS slave.

      Then it should be possible for pt-table-sync to work successfully, as long as the master binlog_format can become STATEMENT (which is the case in this example)
      This might need a new advanced option to disable this check.

      pt-table-sync error (PTDEBUG=1)

      1. pt_table_sync:10819 12841 DBI::db=HASH(0x1306750) SELECT @@binlog_format
      2. pt_table_sync:10821 12841 Original binlog_format: MIXED
      3. pt_table_sync:10825 12841 DBI::db=HASH(0x1306750) /!50108 SET @@binlog_format := 'STATEMENT'/
        Failed to /!50108 SET @@binlog_format := 'STATEMENT'/: DBD::mysql::db do failed: Access denied; you need (at least one of) the SUPER privilege(s) for this operation [for Statement "/*!50108 SET @@binlog_format := 'STATEMENT'*/"] at /usr/local/bin/pt-table-sync line 10826.

      This tool requires binlog_format=STATEMENT, but the current binlog_format is set to MIXED and an error occurred while attempting to change it. If running MySQL 5.1.29 or newer, setting binlog_format requires the SUPER privilege. You will need to manually set binlog_format to 'STATEMENT' before running this tool.
      Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle ;host=***;mysql_read_default_group=client at /usr/local/bin/pt-table-sync line 10829.




            Unassigned Unassigned
            lpjirasync lpjirasync (Inactive)
            0 Vote for this issue
            1 Start watching this issue



              Smart Checklist