An ICU (International Components for Unicode) collation can normally be changed by using Data Dictionary. However, this method requires the ICU version of the database's current ICU collation to be available. When a database uses an ICU collation that cannot be loaded by the current OpenEdge installation, such as when the required ICU libraries are unavailable, use the procedures in this topic to migrate the database to an available ICU collation.

Changing a database collation changes how CHARACTER data is sorted and compared. Because database indexes use collation-specific sort keys for CHARACTER data, rebuild the required indexes after changing the collation. For background information about collations and their effect on sorting and comparison operations, see Collations and collation tables.

Choose a migration strategy based on your downtime and operational requirements.

In-place migration

An in-place migration changes the ICU collation in the existing database. It does not require a second database, but the database is unavailable until the required index rebuild completes. Use this strategy when extended downtime is acceptable and creating a second database is not practical.

To perform an in-place migration:
  1. Create and validate a full backup of the database. If the migration fails or produces unexpected results, the only way to return to the original database state is to restore from a backup. Confirm that the backup can be successfully restored before proceeding.
  2. Disable after-imaging. If the database uses OpenEdge Replication or a hot standby configuration, plan to rebase the target databases after the migration.
  3. Complete any required database preparation, such as truncating the BI file.
  4. Change the database collation by using the PROUTIL COLLATIONUPGRADE utility. Specify the target collation when required. The utility can display the current database collation and list available target collations.
  5. Rebuild database indexes. The database cannot be opened for normal use until the rebuild completes. For more information, see Rebuild the indexes for collation table changes.
  6. Re-enable after-imaging as needed.
  7. Verify that the database starts and that applications can connect successfully.
  8. Test applications because sorting and comparison behavior can differ between ICU versions.

New-database migration

A new-database migration creates a new database with the target ICU collation and copies data from the existing database. It requires a second database and data-transfer configuration, but can reduce the time that applications are unavailable when they switch to the new database. Use this strategy when minimizing application downtime is more important than maintaining a single database environment during the migration.

To perform a new-database migration:

  1. Create a new database that uses the target ICU collation.
  2. Load the database schema. If the .df file contains CLOB COLLATION fields, update them to use the target ICU collation before loading the schema.
  3. Copy data from the existing database to the new database by using Pro2, another record-based replication solution, or an ASCII dump and load.
  4. Test application behavior against the migrated database.
  5. Switch applications to the new database and verify connectivity.