Upgrading oracle on your applicaton is easy job. As easy as colouring a house. It is not that I am fond of colouring house but when I think in deep I can see many simillarities in these two activities. Lets see how it is:
1. "Why Upgrade" is as same question as "Why Colouring". You need to have good answer for that. You do not colour your house because there is colour in market, so you should not suggest upgrading oracle just because the higher version is available.
2. "Will upgrade make my application perform better" is same as same question as "Will colouring make my house beautiful". There is no good explaination why your application performance will improve after upgrade. Actually there are more chances that perfrmance will degrade after the oracle upgrade because in many cases the code behaves differently and there are chances that your functionality will also break. Many people overlook this fact and gets disappointed after upgrade. Offcourse major cause is the false commitment about performance they made for/while upgrade.
So Oracle upgrade will:
1. Break your functionality
2. Make application to run slower
3. Will corrupt your DB if upgrade fails and you could not downgrade successfully.
Then why upgrade? The major drivers for upgrade are:
1. Current oracle version getting outdated
2. You want to make use of new features which are available with new version.
3. You are facing problem on current version and the fix is present on new version.
and may be some other special requirement, but NO ONE upgrades to higher version to get better performance!! So lets get this clear.
Once you take decision about upgrade, then next important questions is HOW?
Well, download the higher version and run Oracle installer, click click click and all done? If you get stuck in-between, give a SOS call to DBA community. If you go this way you need to have very good luck and black cat should not have crossed any of the way you are taking to office in last one month. If this is true, your upgrade will be success.
If you are not so lucky, you need plan the upgrade in systematic way.
In this approch, you go for pilot upgrade, the steps involved are
1. Identify one application instance you want to upgrade,
2. Test entire functionality to make sure everything works,
3. Capture the performance benchmark results,
4. Take backup of database
5. Upgrade instance
6. Run the testpack again to make sure no functionlality is broken,
7. Develop/Decide on fixes for broken functionality
8. Run peformance tests
9. Prepare performance difference report and decide the fix if performance has gone down.
So effectively, you will divide your migration activity in 3 phases: Preupgrade ,upgrade and postupgrade activities.
Pre-upgrade activities:
a. Develop a system test plan. The test plan should cover all the application funcionality and will be used before and after migration to make sure all the functionality is working.
b. Identify the application instance for pilot migration. The application setup should be as functional as production setup and should take stress load for performance benchmark.
c. Once the fuctionality is tested, one should test the performance and prepare the perfromance report to benchmark application performance before migration.
d. The last step in pre-upgrade is to take full backup of database. This backup is helpful if your migration fails and you end up having corrup DB instance.
Upgrade activitites:
a. Which version/versionss: One need to verify if the versions we are planning up use while upgrade are client recommended and available with client. If required, this needs to be clarified with production DBAs for that application.
b. Manual upgrade or GUI based? One should go for manual upgrade because it gives better control. The upgrade instructions in upgrade guide shoud be follwed.
c. The upgrade assistance should not run at the time of binary installation. Install the higher oracle version in new ORACLE_HOME and always take care to set PATH and CLASSPATH variables properly. On UNIX, this is much easier to handle than WINDOWS. Follow all the upgrade steps carefully as mentioned in the upgrade guide.
Post Upgrade Activities:
a.Once the upgrade is successful, one should run the testpack again to make sure all functionality is working. If any broken functionality is broken, one should fix it or decide on the fix if that involves more efforts.
b. Once the functionality is fixes, performance tests should be executed to check the change in application performance. If the appliation code has ANSI syntax, it might behave differently. If any of the code makes use of non-compatible absolute functions/operations, it will break functonality.
Document the complete upgrade process including fixes required.
Monday, 16 February 2009
Subscribe to:
Posts (Atom)