Environment
GroupWise Mobility Service 2014 R2
GroupWise Mobility Service 18Situation
- Preparing a GMS server to be upgraded from SLES11 to SLES12 or patching from SLES12 SP1/2 server to SP3
- Running scripts pgUpdate.sh or pgUpdate94to96.sh gives the following error
- lc_collate cluster values do not match: old "en_GB.UTF-8", new "en_US.UTF-8"
Failure, exiting - GMS services do not start
- Other examples of lc_collate error can include de_DE.UTF-8 or any other non-US locale
Resolution
- Edit the update database script
- pgUpdate.sh or pgUpdate94to96.sh as appropriate
- Establish the server's locale
- # locale | grep LANG
LANG=en_GB.UTF-8 - Search for the "collate" string and replace the "en_US.UTF-8" value which with the locale from the previous step
- Example
From: su postgres -c '/usr/lib/postgresql94/bin/initdb --lc-collate="en_US.UTF-8" -D /var/lib/pgsql/pgsql94/data'
To: su postgres -c '/usr/lib/postgresql94/bin/initdb --lc-collate="en_GB.UTF-8" -D /var/lib/pgsql/pgsql94/data' - Save the changes and re-run the script
The fix of that bug is to use locale as a variable and not as hard coded value, i.e. in newer script you would have then:
su postgres -c '/usr/lib/postgresql94/bin/initdb --locale=$locale -D /var/lib/pgsql/pgsql94/data'
Additional Information
The SLES server must be registered with the NCC or SMT so newer repositories are available per the documentation, here.
Both scripts require, and will download, newer RPMs from the online repositories. If they are not available, then the upgrade will most likely fail.