| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Metalink and availability
> The thing that takes the most time with the CPU patches on Unix is that
> Opatch patches and relinks one binary at a time serially. Having the
> database down is completely unnecessary for many of these binaries, such as
> sqlplus etc. Furthermore, even running binaries like oracle and tnslsnr can
> be relinked with the databases open and running, and staged as alternately
> named files (oracle-new, tnslsnr-new). You can then move them all into
> place during a very brief outage for all instances.
>
> There are a number of tricks that you can use to greatly reduce the apply
> time for the CPU patches. Start with the one-off patch apply guidelines in
> my paper:
>
> http://www.ora-600.net/articles/stayinalive.pdf
>
Jeremiah,
Thanks for a good write up! I also enjoined reading your "The DBA Disaster Diary: Double Failure" story -- I can relate ...
I had a concern about patching ORACLE_HOME while the instance is running (as described in your article by modifying patch scripts and oracle make-files). I think that replacing shared libraries that oracle binaries depend on might cause some side-effects on the running instance(s). It's also not supported as the patch clearly states that all processes must be down.
Instead, I would suggest to pre-stage a copy of patched ORACLE_HOME that was built on a different server, shutdown all running instances and quickly switch ORACLE_HOMEs then apply DB portion of the upgrade (if any). So far ORACLE has been good at separating DATABASE portion of the upgrade from the SOFTWARE.
I am an APPS DBA (97%) and have used similar technique for staging APPS APPL_TOPs and APPS tech-stack (tools ORACLE_HOMEs) during major upgrades. We'd stage the software ahead of time then ONLY run the database portion (d drivers) of the upgrade thus reducing the total upgrade time. Still, in the APPS "world" major upgrades take 40-60 *continuous* hours. That's why I wouldn't recommend running APPS in "front" of a true 24/7/365 shop (back-end is OK maybe ...). You just can't turn replication ON on something like this:
14:59:41 SYSTEM_at_XUPG:amanda> select count(*), object_type 14:59:46 2 from dba_objects 14:59:50 3 group by object_type 14:59:53 4 order by 1 desc;
COUNT(*) OBJECT_TYPE
---------- ------------------
45979 SYNONYM
37683 INDEX
37046 PACKAGE
35940 PACKAGE BODY
26436 VIEW
21359 TABLE
10095 JAVA CLASS
8759 SEQUENCE
2588 TRIGGER
1457 TYPE
933 INDEX PARTITION
575 LOB
438 TABLE PARTITION
412 MATERIALIZED VIEW
290 JAVA DATA
209 PROCEDURE
197 JAVA RESOURCE
164 FUNCTION
143 QUEUE
85 LIBRARY
71 TYPE BODY
61 DATABASE LINK
46 RULE SET
27 OPERATOR
25 EVALUATION CONTEXT
20 CONTEXT
20 RULE
10 CLUSTER
8 JAVA SOURCE
7 INDEXTYPE
4 CONSUMER GROUP
3 DIRECTORY
3 RESOURCE PLAN
15:09:01 SYSTEM_at_XUPG:amanda> select trunc(sum(bytes)/1024/1024)
mbytes,segment_type
15:09:32 2 from dba_segments
15:09:35 3 group by segment_type;
MBYTES SEGMENT_TYPE
---------- ------------------
0 CACHE
158 CLUSTER
55514 INDEX
133 INDEX PARTITION
22 LOBINDEX
773 LOBSEGMENT
0 ROLLBACK
8 SPACE HEADER
63907 TABLE
313 TABLE PARTITION
83 TYPE2 UNDO
## with so many (2706) transactions per hour (slow day)
##
amanda.XUPG-> grep "26-MAY-2006 14" xupg.log | wc -l
2706
Regards,
- Vitaliy
-- http://www.freelists.org/webpage/oracle-lReceived on Fri May 26 2006 - 17:31:42 CDT
![]() |
![]() |