Activity log for bug #1413560

Date Who What changed Old value New value Message
2015-01-22 11:21:50 Ludovic LANGE bug added bug
2015-01-22 11:22:59 Ludovic LANGE description I'm trying to backup a MariaDB server which is a slave (of a multi-source replication), however innobackupex doesn't detect it as such: ------------------------------------------------------------------------------------------------- 150122 10:28:53 innobackupex: Continuing after ibbackup has suspended innobackupex:: Not checking slave open temp tables for --safe-slave-backup because host is not a slave ------------------------------------------------------------------------------------------------- Looking at how the detection is done, I can understand why it says so: ------------------------------------------------------------------------------------------------- sub get_mysql_slave_status { mysql_query($_[0], "SHOW SLAVE STATUS"); } ... get_mysql_slave_status($con); if (defined($con->{slave_status}->{Read_Master_Log_Pos}) and defined($con->{slave_status}->{Slave_SQL_Running})) { $host_is_slave = 1; } ------------------------------------------------------------------------------------------------- Indeed, SHOW SLAVE STATUS has empty output on this server: ------------------------------------------------------------------------------------------------- MariaDB [(none)]> SHOW SLAVE STATUS; Empty set (0.00 sec) ------------------------------------------------------------------------------------------------- This is because, on MariaDB >= 10.0.1, multi-source replication changes things a bit: https://mariadb.com/kb/en/mariadb/documentation/managing-mariadb/replication/standard-replication/multi-source-replication/ In particular, SHOW SLAVE STATUS only show a *default* replication, which is not mandatory to have. You can in addition have others replications defined, all of which have a connection_name that you need to add to the command in order to have more info: ------------------------------------------------------------------------------------------------- MariaDB [(none)]> SHOW SLAVE 'instance7-XXXXXXXXX' STATUS\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event ... ------------------------------------------------------------------------------------------------- You can also use the SHOW ALL SLAVES STATUS to have info on all the slaves defined: ------------------------------------------------------------------------------------------------- MariaDB [(none)]> show all slaves status\G *************************** 1. row *************************** Connection_name: instance1-XXXXX Slave_SQL_State: Slave has read all relay log; waiting for the slave I/O thread to update it ------------------------------------------------------------------------------------------------- This surely has multiple implications for Xtrabackup to support this multi-source replication: - Detection can be easy : checking server version, using SHOW ALL SLAVE STATUS to detect multi-source replication and acting as such. - Stopping / restarting slave(s) needs to be enhanced to iterate on all active slave(s) connections. - The CHANGE MASTER commands may also need to be handled (may be differently if the connection is in GTID or non-GTID mode) There may also be other implications that I did not thought of. ------------------------------------------------------------------------------------------------- $ cat /etc/redhat-release CentOS release 6.6 (Final) ------------------------------------------------------------------------------------------------- $ rpm -q percona-xtrabackup percona-xtrabackup-2.2.8-5059.el6.x86_64 ------------------------------------------------------------------------------------------------- $ innobackupex --version InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy and Percona LLC and/or its affiliates 2009-2013. All Rights Reserved. ------------------------------------------------------------------------------------------------- $ xtrabackup --version xtrabackup version 2.2.8 based on MySQL server 5.6.22 Linux (x86_64) (revision id: ) ------------------------------------------------------------------------------------------------- $ mysql --version mysql Ver 15.1 Distrib 10.0.15-MariaDB, for Linux (x86_64) using readline 5.1 ------------------------------------------------------------------------------------------------- I'm trying to backup a MariaDB server which is a slave (of a multi-source replication), however innobackupex doesn't detect it as such: -------------------------------------------------------------------------- 150122 10:28:53 innobackupex: Continuing after ibbackup has suspended innobackupex:: Not checking slave open temp tables for --safe-slave-backup because host is not a slave -------------------------------------------------------------------------- Looking at how the detection is done, I can understand why it says so: -------------------------------------------------------------------------- sub get_mysql_slave_status {   mysql_query($_[0], "SHOW SLAVE STATUS"); } ...    get_mysql_slave_status($con);    if (defined($con->{slave_status}->{Read_Master_Log_Pos}) and        defined($con->{slave_status}->{Slave_SQL_Running})) {          $host_is_slave = 1;    } -------------------------------------------------------------------------- Indeed, SHOW SLAVE STATUS has empty output on this server: -------------------------------------------------------------------------- MariaDB [(none)]> SHOW SLAVE STATUS; Empty set (0.00 sec) -------------------------------------------------------------------------- This is because, on MariaDB >= 10.0.1, multi-source replication changes things a bit: https://mariadb.com/kb/en/mariadb/documentation/managing-mariadb/replication/standard-replication/multi-source-replication/ In particular, SHOW SLAVE STATUS only show a *default* replication, which is not mandatory to have. You can in addition have others replications defined, all of which have a connection_name that you need to add to the command in order to have more info: -------------------------------------------------------------------------- MariaDB [(none)]> SHOW SLAVE 'instance7-XXXXXXXXX' STATUS\G *************************** 1. row ***************************                Slave_IO_State: Waiting for master to send event ... -------------------------------------------------------------------------- You can also use the SHOW ALL SLAVES STATUS to have info on all the slaves defined: -------------------------------------------------------------------------- MariaDB [(none)]> show all slaves status\G *************************** 1. row ***************************               Connection_name: instance1-XXXXX               Slave_SQL_State: Slave has read all relay log; waiting for the slave I/O thread to update it -------------------------------------------------------------------------- This surely has multiple implications for Xtrabackup to support this multi-source replication: - Detection can be easy : checking server version, using SHOW ALL SLAVE STATUS to detect multi-source replication and acting as such. - Stopping / restarting slave(s) needs to be enhanced to iterate on all active slave(s) connections. - The CHANGE MASTER commands may also need to be handled (may be differently if the connection is in GTID or non-GTID mode) There may also be other implications that I did not thought of. -------------------------------------------------------------------------- $ cat /etc/redhat-release CentOS release 6.6 (Final) -------------------------------------------------------------------------- $ rpm -q percona-xtrabackup percona-xtrabackup-2.2.8-5059.el6.x86_64 -------------------------------------------------------------------------- $ innobackupex --version InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy and Percona LLC and/or its affiliates 2009-2013. All Rights Reserved. -------------------------------------------------------------------------- $ xtrabackup --version xtrabackup version 2.2.8 based on MySQL server 5.6.22 Linux (x86_64) (revision id: ) -------------------------------------------------------------------------- $ mysql --version mysql Ver 15.1 Distrib 10.0.15-MariaDB, for Linux (x86_64) using readline 5.1 --------------------------------------------------------------------------
2015-01-30 09:48:41 Nilnandan Joshi percona-xtrabackup: status New Incomplete
2015-01-30 09:48:43 Nilnandan Joshi percona-xtrabackup: status Incomplete Confirmed
2015-01-30 10:29:41 Nilnandan Joshi bug added subscriber Nilnandan Joshi
2015-02-20 15:06:26 Alexey Kopytov nominated for series percona-xtrabackup/2.3
2015-02-20 15:06:26 Alexey Kopytov bug task added percona-xtrabackup/2.3
2015-02-20 15:06:26 Alexey Kopytov nominated for series percona-xtrabackup/2.2
2015-02-20 15:06:26 Alexey Kopytov bug task added percona-xtrabackup/2.2
2015-02-20 15:06:32 Alexey Kopytov percona-xtrabackup/2.2: status New Triaged
2015-02-20 15:06:35 Alexey Kopytov percona-xtrabackup/2.3: status Confirmed Triaged
2015-02-20 15:06:39 Alexey Kopytov percona-xtrabackup/2.2: importance Undecided Medium
2015-02-20 15:06:41 Alexey Kopytov percona-xtrabackup/2.3: importance Undecided Medium
2015-02-20 15:06:47 Alexey Kopytov percona-xtrabackup/2.2: milestone future-2.2-releases
2015-02-20 15:06:48 Alexey Kopytov percona-xtrabackup/2.3: milestone future-2.3-releases