Upgrading Galera Cluster from MariaDB 10.2 to 10.3

You are viewing an old version of this article. View the current version here.
MariaDB starting with 10.1

Since MariaDB 10.1, the MySQL-wsrep patch has been merged into MariaDB Server. Therefore, in MariaDB 10.1 and above, the functionality of MariaDB Galera Cluster can be obtained by installing the standard MariaDB Server packages and the Galera wsrep provider library package.

Contents

Beginning in MariaDB 10.1, Galera Cluster ships with the MariaDB Server. Upgrading a Galera Cluster node is very similar to upgrading a server from MariaDB 10.2 to MariaDB 10.3. For more information on that process as well as incompatibilities between versions, see the Upgrade Guide.

In order to upgrade a MariaDB 10.2 to MariaDB 10.3 when using Galera Cluster, the following steps need to be performed.

First, before you get started:

  1. First, take a look at Upgrading from MariaDB 10.2 to MariaDB 10.3 which documents the settings in the regular MariaDB server that have been removed or been changed. You will need to make sure that your settings are compatible with 10.3 before upgrading.
  2. Next, make sure that the Galera version numbers are compatible. If you are upgrading from the most recent MariaDB 10.2 release to MariaDB 10.3, then the versions will be compatible. Both MariaDB 10.2 and MariaDB 10.3 use Galera 25.3.x providers, so they should be compatible. See What is MariaDB Galera Cluster?: Galera wsrep provider Versions for information on which MariaDB releases uses which Galera wsrep provider versions.
  3. Ideally, you want to have a large enough gcache to avoid a State Snapshot Transfer (SST) during the rolling upgrade. The gcache size can be configured by setting gcache.size For example:
    wsrep_provider_options="gcache.size=2G"

Before you upgrade, it would be best to take a backup of your database. This is always a good idea to do before an upgrade. We would recommend Mariabackup.

Then, for each node, perform the following steps:

  1. Modify the repository configuration, so the system's package manager installs MariaDB 10.3. For example,
  2. If you use a load balancing proxy such as MaxScale or HAProxy, make sure to drain the server from the pool so it does not receive any new connections. If this is the final node being upgraded, at this point you can remove read-only from the remaining modes.
  3. Stop MariaDB.
  4. Uninstall the old version of MariaDB and the Galera wsrep provider.
    • On Debian, Ubuntu, and other similar Linux distributions, execute the following:
      sudo apt-get remove mariadb-server galera
    • On RHEL, CentOS, Fedora, and other similar Linux distributions, execute the following:
      sudo yum remove MariaDB-server galera
  5. Install the new version of MariaDB and the Galera wsrep provider.
    • On Debian, Ubuntu, and other similar Linux distributions, execute the following:
      sudo apt-get install mariadb-server mariadb-client mariadb-shared mariadb-common galera
    • On RHEL, CentOS, Fedora, and other similar Linux distributions, execute the following:
      sudo yum install MariaDB-server MariaDB-client MariaDB-shared MariaDB-common galera
  6. Make any desired changes to configuration options in option files, such as my.cnf. This includes removing any options that are no longer supported. Also, until all the nodes are upgraded, you will want to set read_only=ON. This will to prevent the upgraded MariaDB 10.3 nodes from replicating to the existing MariaDB 10.2 nodes, which is not supported. The final node being upgraded does not need to set read_only=ON.
  7. On Linux distributions that use systemd you may need to increase the service startup timeout as the default timeout of 90 seconds may not be sufficient. See Systemd: Configuring the Systemd Service Timeout for more information.
  8. Start MariaDB.
  9. Run mysql_upgrade with the --skip-write-binlog option.
    • mysql_upgrade does two things:
      1. Ensures that the system tables in the mysql database are fully compatible with the new version.
      2. Does a very quick check of all tables and marks them as compatible with the new version of MariaDB .

When this process is done for one node, move onto the next node.

Note that when upgrading the Galera wsrep provider, sometimes the Galera protocol version can change. The Galera wsrep provider should not start using the new protocol version until all cluster nodes have been upgraded to the new version, so this is not generally an issue during a rolling upgrade. However, this can cause issues if you restart a non-upgraded node in a cluster where the rest of the nodes have been upgraded.

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.