As far as I can tell, xtrabackup is invoking InnoDB redo log processing by invoking innobase_start_or_create_for_mysql(), which in turn invokes recv_recovery_from_checkpoint_start() and then recv_find_max_checkpoint(), which should fail due to redo log format mismatch:
switch (group->format) {
|
case 0:
|
return(recv_find_max_checkpoint_0(
|
max_group, max_field));
|
case LOG_HEADER_FORMAT_CURRENT:
|
break;
|
default:
|
/* Ensure that the string is NUL-terminated. */
|
buf[LOG_HEADER_CREATOR_END] = 0;
|
ib::error() << "Unsupported redo log format."
|
" The redo log was created"
|
" with " << buf + LOG_HEADER_CREATOR <<
|
". Please follow the instructions at "
|
REFMAN "upgrading-downgrading.html";
|
/* Do not issue a message about a possibility
|
to cleanly shut down the newer server version
|
and to remove the redo logs, because the
|
format of the system data structures may
|
radically change after MySQL 5.7. */
|
return(DB_ERROR);
|
}
|
This is the code that I originally added in MySQL 5.7.9.
I do not see how xtrabackup could possibly work with MariaDB Server 10.3. It should see an unrecognized format identifier 103 and display an informational message that the log file was created by MariaDB 10.3. I changed that message to say MariaDB in MDEV-11432.
jplindst, you claimed that the Galera tests for xtrabackup worked in 10.3. Can you confirm that? Could it be that the errors from xtrabackup were completely ignored?
It'll break setups that use these methods (assuming there were cases when they worked).
Perhaps a less disruptive approach would be to symlink xtrabackup and xtrabackup-v2 scripts to mariabackup?
Or remove scripts completely and in the server (mysqld) treat wsrep_sst_method=xtrabackup as wsrep_sst_method=mariabackup.