Monday, December 06, 2010

My Steps for Patching an Oracle 10R2 Instance to 10.2.0.4

0. Rman level 0 backup

1. Blackout db and the server (Grid Control) --- done

2. Export invalid objects list --- done

3. Check the current version of the Oracle time zone definitions
SQL> SELECT version FROM v$timezone_file; --- was 3; did note 553812.1
If this query reports version 4, no action is required; in this case, continue with steps
If this reports a version lower or higher then 4, see OracleMetalink document 553812.1 Actions for the DSTv4 update in the Release 10.2.0.4 patchset.

4. chmod 640 /home/userid/.Xauthority; become oracle; export XAUTHORITY=/home/rboron/.Xauthority --- done

5. Shutdown the instance (normal or immediate) --- done

6. tar -cvf /u02/rman_backup/before_10204upgrade/oracle_home.tar $ORACLE_HOME --- done

7 ./runInstaller -silent -responsefile /home/oracle/oracle_patches/10204patchset/Disk1/patchset.rsp --- done

8. $ORACLE_HOME/root.sh script as the root user --- done

9. start up the listener (lsnrclt start)--- done

10. $ dbua -silent -dbname $ORACLE_SID -oracleHome $ORACLE_HOME -sysDBAUserName SYS -sysDBAPassword xxxxxxxx -recompile_invalid_objects true --- done

11. SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY; --- done (all 12 were valid and showing 10.2.0.4.0)

12. Db bounce (shutdown normal or immediate and restart) --- done (looks great!)



*** Apr 2010 CPU - NO ASM
1. Shutdown db,agent,listener --- done

2. Make sure I have the OPatch 10.2 version 10.2.0.4.2 or later
/u01/app/oracle/product/10.2.0/db_1/OPatch/opatch version --- done (OPatch 10.2.0.4.2)

3. cd /u01/app/oracle/oracle_patches/apr2010cpu/9352191/ --- done

4. /u01/app/oracle/product/10.2.0/db_1/OPatch/opatch napply -skip_subset -skip_duplicate --- done

5. Listener startup (lsnrctl start) --- done

6. Load modified SQL

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql cpu apply
SQL> -- Execute the next statement only if this is the first 10.2.0.4 CPU applied in the Oracle home.
SQL> @utlrp.sql
SQL> QUIT
--- done

7. Check whether view recompilation has already been performed for the database
SQL> SELECT * FROM registry$history where ID = '6452863'; --- done (1 row returned)

If no rows returned, go to pt.8

If rows returned:

cd $ORACLE_HOME/cpu/view_recompile
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @recompile_precheck_jan2008cpu.sql
SQL> QUIT
---done (Procedure completed successfuly - 3528 objects to be recompiled)

If precheck orders to recompile:

cd $ORACLE_HOME/cpu/view_recompile
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP UPGRADE
SQL> @view_recompile_jan2008cpu.sql
SQL> SHUTDOWN;
SQL> STARTUP;
SQL> QUIT
--- done (number of invalid objects 26)

If any invalid objects were reported, run the utlrp.sql script as follows:

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
--- done

8. DB bounce (normal or immediate shutdown and restart instance) -- done

9. Agent startup -- done

10. Log files check --- done

11. Remote connection attempt --- done

12. Compare invalid objects lists --- done (7 less)

13. Opatch inventory check:
/u01/app/oracle/product/10.2.0/db_1/OPatch/opatch lsinventory
Compare CPU folder content [9352191] with the opatch result --- done

14. Disable server and db blackout (Grid Control) --- done

15. Complete a level 0 backup --- done

Trust you are having a great day!
Thx

No comments: