Production Upgrade from 8.1.7.4 to 9.2.0.8
Is not uncommon that very critical databases remain on obsolete versions longer than it is convenient.
If the database provide good service and reasonable performance, the risks related to any radical change make the people that need to make the decision to upgrade, to delay it as much as possible.
Sooner or later the day come when the increasing amount of problems, usually related to a big increment on the load and complexity of the applications running on the database raise up the need to upgrade to a more powerful version.
At this moment the DBA get a small window to shutdown the application during the weekend and upgrade the database as fast and safely as possible.
The attached document: "8.1.7.4 - 32 bits Database Upgrade to 9.2.0.8 - 64 bits" is the checklist I did prepare for such a case.
- Most of the work is done on the pre-migration phase.
- All upgrade steps are automatized as much as possible.
- During the upgrade, the longest part of it, the compilation of thousands of user objects, is done in parallel.
I did try this procedure running the compilation with one session only, on a general rehearsal, I expect to decrease the execution time from 3.5 hours to about 2 hours on the next try running in a more powerful machine, with parallel (15) for the compilation process.
Today most upgrades are done from 9i to 10g, and 11g is waiting around the corner.
Nevertheless still there are many critical production applications running on 8i databases.
This procedure may serve as an example for similar situations.