Page Contents


Feature List

Previous topic

OMERO.server backup and restore

Next topic

OMERO upgrade checks

This Page

OMERO.server upgrade

The OME team is committed to providing frequent, project-wide upgrades both with bug fixes and new functionality. We try to make the schedule for these releases as public as possible. You may want to take a look at the roadmap for exactly what will go into a release. We always inform our mailing lists of the development status.

See the full details of OMERO 5.1.4 features in the Announcements forum.

This guide aims to be as definitive as possible so please do not be put off by the level of detail; upgrading should be a straightforward process.

Upgrade check list

Check prerequisities

Before starting the upgrade, please ensure that you have reviewed and satisfied all the system requirements with correct versions for installation. In particular, ensure that you are running a suitable version of PostgreSQL to enable successful upgrading of the database, otherwise the upgrade script aborts with a message saying that your database server version is less than the OMERO prerequisite. If you are upgrading from a version earlier than OMERO 5.0 then first review the 5.0 upgrade notes regarding previous changes in OMERO.

File limits

You may wish to review the open file limits. Please consult the Too many open file descriptors section for further details.

Password usage

The passwords and logins used here are examples. Please consult the Which user account and password do I use where? section for explanation. In particular, be sure to replace the values of db_user and omero_database with the actual database user and database name for your installation.

OMERO.web configuration

If you generated configuration stanzas using omero web config which enable OMERO.web via Apache or Nginx, they may include hard-coded links to your previous version of OMERO. We recommend using a future-proof symlink if possible, so that these stanzas do not need updating with each OMERO server upgrade. See also the OMERO.web deployment page.

Web plugin updates

OMERO.web plugins are very closely integrated into the webclient. For this reason, it is possible that an update of OMERO will cause issues with an older version of a plugin. It is best when updating the server to also install any available plugin updates according to their own documentation.

Memoization files invalidation

All cached Bio-Formats memoization files created at import time will be invalidated by the server upgrade. This means the very first loading of each image after upgrade will be slower. After re-initialization, a new memoization file will be automatically generated and OMERO will be able to load images in a performant manner again.

These files are stored under BioFormatsCache in the OMERO data directory, e.g. /OMERO/BioFormatsCache. You may see error messages in your log files when an old memoization file is found; to avoid these messages delete everything under this directory before starting the upgraded server.


If you encounter errors during an OMERO upgrade, database upgrade, etc. you should retain as much log information as possible and notify the OMERO.server team via the mailing lists available on the community page.

Upgrade check

All OMERO products check themselves with the OmeroRegistry for update notifications on startup. If you wish to disable this functionality you should do so now as outlined on the OMERO upgrade checks page.

Upgrade steps

For all users, the basic workflow for upgrading your OMERO.server is listed below. Please refer to each section for additional details.

Perform a database backup

The first thing to do before any upgrade activity is to backup your database.

$ pg_dump -h localhost -U db_user -Fc -f before_upgrade.db.dump omero_database

Copy new binaries

Before copying the new binaries, stop the existing server:

$ cd OMERO.server
$ bin/omero web stop
$ bin/omero admin stop

Your OMERO configuration is stored using config.xml in the etc/grid directory under your OMERO.server directory. Assuming you have not made any file changes within your OMERO.server distribution directory, you are safe to follow the following upgrade procedure:

$ cd ..
$ mv OMERO.server OMERO.server-old
$ unzip
$ ln -s OMERO.server-5.1.4-ice3x-byy OMERO.server
$ cp OMERO.server-old/etc/grid/config.xml OMERO.server/etc/grid


ice3x and byy need to be replaced by the appropriate Ice version and build number of OMERO.server.

Upgrade your database


This section only concerns users upgrading from a 5.0 or earlier server. If upgrading from a 5.1 server, you do not need to upgrade the database.

Ensure Unicode character encoding

OMERO 5.1 requires a Unicode-encoded database; without it, the upgrade script aborts with a message warning how the “OMERO database character encoding must be UTF8”. From psql:

# SELECT datname, pg_encoding_to_char(encoding) FROM pg_database;
  datname   | pg_encoding_to_char
 template1  | UTF8
 template0  | UTF8
 postgres   | UTF8
 omero      | UTF8
(4 rows)

Alternatively, simply run psql -l and check the output. If your OMERO database is not Unicode-encoded with UTF8 then it must be re-encoded.

If you have the pg_upgradecluster command available then its --locale option can effect the change in encoding. Otherwise, create a Unicode-encoded dump of your database: dump it as before but to a different dump file and with an additional -E UTF8 option. Then, create a Unicode-encoded database for OMERO and restore that dump into it with pg_restore, similarly to effecting a rollback. If required to achieve this, the -E UTF8 option is accepted by both initdb and createdb.

Run the upgrade script

You must use the same username and password you have defined during OMERO.server installation. The 5.1 upgrade script should execute in a short time.

$ cd OMERO.server
$ psql -h localhost -U db_user omero_database < sql/psql/OMERO5.1__1/OMERO5.0__0.sql
Password for user db_user:

(1 row)


If you perform the database upgrade using SQL shell, make sure you are connected to the database using db_user before running the script. See this forum thread for more information.

Optimize an upgraded database (optional)

After you have run the upgrade script, you may want to optimize your database which can both save disk space and speed up access times.

$ psql -h localhost -U db_user omero_database -c 'REINDEX DATABASE "omero_database" FORCE;'
$ psql -h localhost -U db_user omero_database -c 'VACUUM FULL VERBOSE ANALYZE;'

Merge script changes

If any new official scripts have been added under lib/scripts or if you have modified any of the existing ones, then you will need to backup your modifications. Doing this, however, is not as simple as copying the directory over since the core developers will have also improved these scripts. In order to facilitate saving your work, we have turned the scripts into a Git submodule which can be found at

For further information on managing your scripts, refer to OMERO.scripts. If you require help, please contact the OME developers.

Update your configuration

Environment variables

If you changed the directory name where the 5.1.4 server code resides, make sure to update any system environment variables. Before restarting the server, make sure your PATH and PYTHONPATH system environment variables are pointing to the new locations.

JVM memory settings

Your memory settings should be copied along with etc/grid/config.xml, but you can check the current settings by running omero admin jvmcfg. See Memory configuration for more information.

OMERO.web server configuration

The generated web-server configurations for Nginx and Apache have been revised in OMERO 5.1. It is highly recommended that you regenerate your FastCGI Configuration (Unix/Linux) or WSGI Configuration (Unix/Linux), remembering to merge in any of your own modifications if necessary. See What’s new for OMERO 5.1 for sysadmins for details of changes.

If necessary ensure you have set up a regular task to clear out any stale OMERO.web session files as described in OMERO.web Maintenance.

Restart your server

  • Following a successful database upgrade, you can start the server.

    $ cd OMERO.server
    $ bin/omero admin start
  • If anything goes wrong, please send the output of omero admin diagnostics to

  • Start OMERO.web with the following command:

    $ bin/omero web start

Restore a database backup

If the upgraded database or the new server version do not work for you, or you otherwise need to rollback to a previous database backup, you may want to restore a database backup. To do so, create a new database,

$ createdb -h localhost -U postgres -E UTF8 -O db_user omero_from_backup

restore the previous archive into this new database,

$ pg_restore -Fc -d omero_from_backup before_upgrade.db.dump

and configure your server to use it.

$ bin/omero config set omero_from_backup

See also

Legacy part of the OME website containing upgrade instructions for previous versions of the OMERO server.