--- /usr/bin/innobackupex 2012-04-28 08:58:13.000000000 +0000 +++ innobackupex 2012-05-02 01:41:56.546088866 +0000 @@ -180,6 +180,7 @@ # mysql master's binlog position as given by "SHOW SLAVE STATUS" command # run on a slave server my $mysql_slave_position = ''; +my $mysql_slave_relay_position = ''; # process id of ibbackup program (runs as a child process of this script) my $ibbackup_pid = ''; @@ -467,6 +468,9 @@ if ($mysql_slave_position && $option_slave_info) { print STDERR "$prefix MySQL slave binlog position: $mysql_slave_position\n"; } + if ($mysql_slave_relay_position && $option_slave_info) { + print STDERR "$prefix MySQL slave relay log position: $mysql_slave_relay_position\n"; + } return $ibbackup_exit_code; } @@ -1297,6 +1301,9 @@ my $position = ''; my $filename = ''; my $master= ''; + my $master_user= ''; + my $relay_filename = ''; + my $relay_position = ''; # get slave status. Use single quotes here, otherwise # \G is evaluated as a control character. @@ -1307,8 +1314,10 @@ file_to_array($mysql_stdout, \@lines); for (@lines) { $master = $1 if /Master_Host:\s*(\S*)\s*$/; - $filename = $1 if /Master_Log_File:\s*(\S*)\s*$/; - $position = $1 if /Master_Log_Pos:\s*(\S*)\s*$/; + $filename = $1 if /Relay_Master_Log_File:\s*(\S*)\s*$/; + $position = $1 if /Exec_Master_Log_Pos:\s*(\S*)\s*$/; + $relay_filename = $1 if /Relay_Log_File:\s*(\S*)\s*$/; + $relay_position = $1 if /Relay_Log_Pos:\s*(\S*)\s*$/; } # print slave status to a file @@ -1319,7 +1328,8 @@ open(FILE, "| ssh $option_ssh_opt $option_remote_host 'cat > $slave_info'") || Die "Failed to open file '$option_remote_host:$slave_info': $!"; } - print FILE "CHANGE MASTER TO MASTER_LOG_FILE='$filename', MASTER_LOG_POS=$position\n"; + print FILE "CHANGE MASTER TO MASTER_HOST='$master', MASTER_LOG_FILE='$filename', MASTER_LOG_POS=$position, MASTER_USER='$master_user', MASTER_PASSWORD='';\n"; + print FILE "# Corresponds to relay log '$relay_filename', position $relay_position\n"; close(FILE); if ($option_stream) { @@ -1329,6 +1339,7 @@ } $mysql_slave_position = "master host '$master', filename '$filename', position $position"; + $mysql_slave_relay_position = "filename '$relay_filename', position $relay_position"; }