After-Imaging between different platforms is not supported. The only supported mode of supporting After-Imaging between servers is when both servers are
identical platforms, which Progress defines as being the
same hardware and
operating system versions as well as the
same OpenEdge bit versions. While this may work in some cases, since we
do not support it, it cannot be relied upon for a seamless migration strategy.
For example, AI files from pre-10.1B release and post 10.1B release are not compatible due to the 64-bit keys that were introduced in OpenEdge 10.1B.
Similarly in OpenEdge 10.2B the various additions to the AI note structures were made. These changes are made internally without being Documented as we implicitly
do not support after-imaging across OpenEdge versions.
Therefore when the database is enabled for After-Imaging, it first needs to be disabled prior to opening the database in the next OpenEdge version.
Method outline is as follows:Note the same applies for Replication enabled databases, but the Steps below will automatically disable Replication when after-imaging is disabled.
[CURRENT VERSION]
Shut down the database, truncate the bi, archive remaining ai files, disable after-imaging and take a backup prior to version upgrade
$ proshut dbname -by
$ proutil dbname -C truncate bi
$ rfutil dbname -C aimage list # all ai files with Staus = BUSY, FULL, LOCKED need to be archived for future use if needed.
$ rfutil dbname -C aimage end
$ probkup dbname dbname.bak [+backup parameters in current use]
$ proutil dbname -C truncate bi
[NEW VERSION]
After conversion (eg conv1011) if migrating to a new Major Version, re-enable after-imaging, then start the database in the new version
$ rfutil dbname -C mark backedup
# there is no need to add ai files since they are still part of the database Control Area
# should the AI files be in need of restructuring however, now is a good time to do so.
$ rfutil dbname -C aimage begin
# (After-imaging Management, Replication Source and new Replication Target baseline as required)
$ rm dbname.repl.recovery
$ proutil dbname -C enablesitereplication source
$ rfutil dbname -C aiarchiver enable
# Start the database in the new OpenEdge version
$ proserve dbname [+ database startup parameters] [+ After-imaging Management parameters: -aiarcdir; -aiarcinterval] [+ Replication parameters: -pica, -DBService replserv]
# Take an online PROBKUP to rebaseline the target databases
$ probkup online dbname <path>/dbname.backupvolume1 -Bp 10 [-REPLTargetCreation]