The following general steps should be followed, allowing at least a month for the complete process to ensure that everything is tested and everybody understands the implications:
- Set up a new release of the software on a new test system.
- Take a standalone backup from the main system and copy it to the test system.
- Test the applications extensively against the new release on the test system.
When everything works and performs correctly, then do the following:
- Set up a connection pooler to the main database (it may be there already).
- Set up pglogical for all tables from old to new database servers. Make sure you wait until all the initial copy tasks have completed for all tables.
Retest the application extensively against the new release on live data, then when ready for the final cut-over, we can do the following:
- Pause the connection pool.
- Switch the config of the pool over to the new system, reload.
- Resume the connection pool (so it now accesses a new server).
Downtime for the application is the length of time to these last three steps.