Choral Upgrade without Downtime¶
This documentation describes the steps of upgrading Choral without stopping the operation of the formerly installed Choral. This upgrade method is available from version 22.16.0 as the version upgrading to.
1. Prerequisites¶
You have a running Choral setup with
E.g.:
The query of the
The synonym defines that this call is the same as the following:
2. Install the new version of JChem Choral¶
Install the new Choral version with
You may choose setting up a new Choral server or using a new install directory on the same server but on different port.
Create all necessary grants and privileges for
Don't change the synonyms yet and don't add the indexes yet.
At the end of this step the old and the new Choral version are both working, only the indexes are missing for the new version.
3. Run the script¶
Execute this grant statement as SYSTEM:
Fill out the placeholders and execute as the following script for each index: as
The script waits until no uncommitted changes exist for the indexed table. Then creates an empty index.
The index is invisible at first, so the query planner doesn't use it yet. Then the script fills the empty index with the index data.
It takes a bit more time than a usual indexing. The current progress can be monitored in the v$session_longops view.
When it is finished, the index is ready to use. The final step in the script is to make the index visible.
At the end of this step the old and the new Choral both contain the same index data and both are fully functioning.
E.g. these scripts must both work fine for the
4. Change the synonym definitions¶
Change the synonym definitions to use the new Choral version instead of the old Choral version.
E.g.:
Test the synonym's work as
The synonym defines that this call is the same as the following:
5. Stop and remove old version¶
Stop running the old version of choral service and drop the user