MariaDB – Multi-Source Replication from Older Masters

mariadbreplication

I have several different production databases running MariaBD 5.5. I'd like to setup a new machine, with MariaDB 10.0 in order replicate all of those databases to a single MariaDB instance using multi-source replication.

I know that multi-source was only introduced in MariaDB 10.0, but does it require that both master and slave are running the same version, or will it be sufficient for only the slave to be on MariaDB 10?

Updating all of the production databases to v10.0 isn't really an option at this stage unfortunately.

Best Answer

From what I can find on MariaDB's website, multi-source replication from MariaDB 5.5 to MariaDB 10.0 looks like it should not be an issue.

https://mariadb.com/kb/en/mariadb/upgrading-from-mariadb-55-to-mariadb-100/

"There are no changes in table or index formats between MariaDB 5.5 and MariaDB 10.0, so on most servers the upgrade should be painless."

They even mention considering Multi source replication on this same page (above).

This link provides incompatibilities with MariaDB 5.5 that you should watch out for: https://mariadb.com/kb/en/mariadb/multi-source-replication/

Incompatibilities with MariaDB/MySQL 5.5

  • max_relay_log_size is now (almost) a normal variable and not automatically changed if max_binlog_size is changed. To keep things compatible with old config files, we set it to max_binlog_size at startup if its value is 0.
  • You can now access replication variables that depend on the active connection with either GLOBAL or SESSION.
  • We only write information about relay log positions for recovery if innodb-recovery-update-relay-log is set.
  • Slave_retried_transactions now shows the total count of retried transactions over all slaves.
  • The status variable Com_slave_start is replaced with Com_start_slave.
  • The status variable Com_slave_stop is replaced with Com_stop_slave.
  • FLUSH RELAY LOGS are not replicated anymore. This is not safe as connection names may be different on the slave.