We are currently looking into upgrading our servers from oracle 10.2.0.4 to oracle 184.108.40.206 (about time!) using the upgrade guide provided by SAP. (on Windows Server 2003/2008 machines)
Doing it the right way, seems to be quite a lenghty process unfortunately, so i'm looking into ways of speeding up the upgrades to persuide our customers to do have it done rather sooner than later. 😉
I was thinking that installing the new Oracle Server software (chapter 4 of the upgrade guide) and patching it before starting the actual DB upgrade, might be a good idea to save some precious upgrade time, since the rest of the manual requires downtime unfortunately.
So far, I've been succesfull in installing the Oracle 220.127.116.11 server software with SAP and Oracle 10.2.0.4 still running. After that, it's time to patch the newly installed Oarcle home, but here's the catch: in order to apply patches using opatch, Opatch requires the environment variable ORACLE_HOME to point to the newly installed oracle_home (11202) and it requires the Oracle 11 services to stop.
So far; I've figured out that opatch can be told to patch a specific home using commandline:
opatch apply <patchid> -oh <patch to oracle home to be patched>
..so that issue would be solved by that. However, the Oracle documentation that comes with the Oracle patches also states that Oracle needs a clean shutdown before patching, including Windows services. Sure, the newly installed Oracle 11 services can be stopped without problems (since the DB hasn't been upgraded, these aren't actually doing anything) but the MS Distributed transaction coordinator is still in use at this point by the old 10.2.0.4 database. So, we won't be able to stop that service. 😔
Will the MSDTC service be in use by the newly installed Oracle home, or will i be able to patch it without stopping the MSDTC service? Is my opatch commandline assumption correct, or will this cause problems? Another option would be to temporarily change the new ORACLE_HOME environment variable using SET in a dosbox, patch the new Ora_home, change it back afterwards, but i have no idea of what the effect would be on the running Oracle DB when doing that.
Any thoughts/ideas on this approach?