Skip to content

The upgrade checker

When it comes to upgrading a database server instance there are many factors that you should have into account, just to name a few:

  • Knowing which features are deprecated or which configuration parameters will adopt a new default value.
  • Be aware of any change that may potentially cause a disruption in the normal functioning of the database clients, like a change in the default character set.
  • Be aware of a change that would make the database server upgrade fail, like for example a parameter that has been removed in the new version but that is defined in the configuration file.

The best way to be aware of all the changes that will happen when we perform an upgrade to a database server is to read all the release notes for all the versions between the version of origin and the target version, but even in that situations some details may scape to a keen eye. It is because of this, that in the DBOD we have introduced upgrade checkers for PostgreSQL and MySQL database servers.

What is an upgrade checker?

An upgrade checker is an upgrade utility that enables us to verify whether database server instance is ready for upgrade or not.

PostgreSQL upgrade checker

The PostgreSQL upgrade checker is provided as part of the PostgreSQL binary, it can be used as a command-line argument (-c or --check) of the pg_upgrade application. The command checks the compatibility of the old and new cluster without changing the data.

MySQL Shell upgrade checker utility

The util.checkForServerUpgrade() function is an upgrade checker utility that enables you to verify whether MySQL server instances are ready for upgrade. You can select a target MySQL Server release to which you plan to upgrade, ranging from the first MySQL Server 8.0 General Availability (GA) release (8.0.11), up to the MySQL Server release number that matches the current MySQL Shell release number. The upgrade checker utility carries out the automated checks that are relevant for the specified target release, and advises you of further relevant checks that you should make manually.

How to use the upgrade checker utility through the DBOD web

In the DBOD , we have integrated these two tools in our web interface so they can be executed on demand allowing users to carry out database server upgrades safely and at their own pace. When a new upgrade is available for a PostgreSQL or a MySQL instance, the arrow on the left of the instance will be enabled and the upgrade checker icon will be visible:

upgrade_instance.png

The upgrade checker is the automated mechanism by which a database server instance upgrade will be enabled or not. When the upgrade checker button is clicked, a background process is triggered and depending on the type of the instance an upgrade checker or the other will be executed. The upgrade checker throws a report with the result of the check which may contain errors and actions that the user needs to perform in the database server instance before safely upgrading the database server. The upgrade of the instance won't be enabled until all the errors have been fixed.

When a specific upgrade for an instance is enabled, it means that the upgrade checker run executed successfully and that the upgrade checker generated a report without errors meaning that the instance can be safely upgraded.

enabled_upgrade.png

Warning

Before upgrading your production instance from the DBOD web portal, we recommend you to validate first the upgrade process in a test instance that you may have running with the same version, or by creating a clone of your current production instance from the web. As usual, the clone will be available for one month. Once done, please validate your applications against the test/clone instance that you just upgraded to be sure that everything will work as expected once you decide to upgrade your production instance. An upgrade checker report without errors does not warranty that the clients connected to the database server will work properly after the upgrade.

When a specific upgrade for an instance is not enabled, it means that the upgrade checker didn't run for this instance or that it was executed but generated a report with errors that need to be corrected before upgrading the database server.

disabled_instance_upgrade.png

Accessing the upgrade checker reports

For each database server instance within the DBOD there is a dedicated folder in CERNBox named uprade_checker_reports.

upgrade_checker_reports_folder.png

This folder is under the parent folder named after the instance's name.

cernbox_parent_folder.png

Note

The instance's CERNBox folders are shared only with the assigned e-group, so even if you are the owner, but you are not a member of the assigned e-group you won't be able of seeing the contents of this folder. For instances were the owner did not specify an e-group the e-group name that will be shown in the e-group field will be dbondemand-empty. If your instance shows the value dbondemand-empty please modify the e-group of your instance through the resources portal and open a ticket to the DBOD team so they can create the CERNBox share for the assigned e-group.

You can access to the upgrade checker reports folder at any moment through the CERNBox public link with the following format:

https://cernbox.cern.ch/files/spaces/eos/project/d/dbod/public/instance_name/upgrade_checker_reports

or through the link present in the DBOD website when a new upgrade is available:

access_upgrade_checker_reports.png