Upgrade to
OpenEdge 11.7.5, 12.0 or later where AI area descriptors are nulled out before writing the AI area descriptor header to the first extent when enabling AI imaging online.
For versions prior to OpenEdge 11.7.5, 12.0:Option 1: After disabling After-Imaging online with "
rfutil dbname -C aimage aioff", restart the database before re-enabling AI and AIARCHIVER online with PROBKUP.
Option 2: Before disabling After-Imaging online:
Always verify the current AI extent status:
$ rfutil <dbname> -C aimage list | egrep -i "Status|Path"A. Re-evaluate if After-Imaging itself really needs to be disabled online.If the
AI Archiver is not archving and emptying ai extents, other options are:
- Change the current archive directory to one that is accessible and has space with aiarchiver setdir
- Stop the AI archiver online with aiarchiver end then either manually archive with aiarchive nextextent or re-start the deamon
- Disable only AIMGT online with aiarchiver disable then ai files can be manually archived with OS tools and emptied with aimage empty, before (re)enabling AIMGT online which requires an ai switch, with: probkup online dbname dbname.bak enableaiarchiver -aiarcdir
If the database is enabled for
Replication and ai extents are LOCKED, other options are:
- Restart both the Replication Server and Replication Agent
- Add additional AI areas to the database.
- Disable replication and then re-initialize replication
These Options are further outlined in Article
All after imaging (AI) areas are in LOCKED state after network failure B. If After-Imaging itself really needs to be disabled onlineBefore disabling After-Imaging online, ensure all FULL AI extents have been archived. These can be manually archived online with AIARCHIVE NEXTEXTENT to a new archive directory if needed
This ensures when the aiarchiver is re-enabled with after-imaging online without first shutting down the database, it expects to archive the first full ai file when switched which will be the first ai file (.a1, sequence 1).
Refer to Article
How to manage the aiarchiver daemon online 1. Take a list of all current FULL AI extents:
$ rfutil dbname -C aimage list | egrep -i "Status|Path"
2. Archive all FULL AI extents
If the current archive directory needs to be changed:
$ rfutil dbname -C aiarchiver setdir <FULL/ARCHIVEPATH>
Manually instruct FULL ai extents to be archived.
$ rfutil dbname -C aiarchive nextextent
Alternatively, manually archive each FULL AI extent ensuring the destination is accessible and has sufficient space
$ rfutil dbname -C aiarchiver end
$ rfutil dbname -C aiarchive extent <path>/<dbname>.a3 <FULL/ARCHIVEPATH>/<dbname>.a3
3. Before disabling After-Imaging online, verify the current AI extent status. All FULL extents will be marked EMPTY after being manually archived.
$ rfutil <dbname> -C aimage list | egrep -i "Extent|Status|Seqno"
4. Disable and re-enable After-imaging online
$ rfutil <dbname> -C aimage aioff
$ probkup online <dbname> <dbname>.bak enableai enableaiarchiver -aiarcdir "<dir1>,<dir2>" [ -com -vs < $BKFILEVOLS ]