Tuesday, February 5, 2008

9.2.0.X Upgrade to 9.2.0.7 Upgrade

1 Create 9.2.0.7 Oracle Home 5
1.1 Create Oracle Home 9.2.0.7 with 9i 9.2.0.1.0 Database 64-bit CD’s (3) 5
1.2 Apply 9.2.0.7 Upgrade Patch – 4163445 5
1.3 Install Opatch – 2617419 5
1.4 Apply Patch 4533592 6
1.5 Apply Patch 4622088 6
1.6 Apply Patch 4573980 6
1.7 Apply Patch 4651385 6
1.8 Apply Patch 4661160 6
1.9 Apply Patch 5049060 7
1.10 Apply Patch 4721492 7
1.11 Apply Patch 2300743 7
1.12 Apply Patch 5016142 7
1.13 Apply Patch 4696143 7
1.14 Apply Patch 4742607 7
1.15 Apply Patch 4451759 7
1.16 Apply Patch 4942939 7
1.17 Apply Patch 4594912 7
1.18 Apply Patch 3332598 8
1.19 Apply Patch 5103362 8
1.20 Apply Patch 3845730 8
1.21 Apply Patch 5059488 8
1.22 Apply Patch 5163411 8
1.23 Apply Patch 5368853 8
1.24 Apply Patch 4594917 8
1.25 Verify patch list 8
1.26 RAC Only – Copy executable to Oracle Home 10
1.27 ODM Only - Link Veritas ODM (Oracle Disk Manager) Library to Oracle – on all nodes. 10
1.28 RAC ONLY – Relink Oracle homes with UDP – NOT LLT – NOT DEFAULT!. 10
2 Upgrade Existing 9i Database(s). 11
2.1 Set Database to point to new ORACLE HOME 11
2.2 Verify/Change Init.ora parameters – first save off current Init.ora 11
2.3 Create Log Directory For Migration Log. 12
2.4 Startup Database for Migrate. 12
2.5 Drop SYS Stats 12
2.6 Run preliminary sqls. 12
2.7 Upgrade Database. 12
2.8 Compile Invalids. 13
2.9 Verify v$option and dba_registry and compare with the spool files taken before migration 13
2.10 Critical Patch Update Post-Installation Steps: 13
2.11 Gather SYS Stats: 14
2.12 Shutdown Database 14
3 Posts Database Migration 14
3.1 Revert Init.ora file – May vary with RAC 15
3.2 Modify Listener Configs as required 15
3.3 Make appropriate links to tnsnames.ora and listener.ora from $TNS_ADMIN 15
3.4 Get Statspack noresp sql from previous 9i home 15
3.5 Start The Database Normally 15


1 Create 9.2.0.7 Oracle Home

All patches located in /admin/orapatch/oracle/patch/oracle64/9.2.0.7 directory. The result is a 9.2.0.7 Oracle Home. There are 5 major steps:

• Create 9i Oracle Home - /u01/app/oracle/product/9.2.0.7
• Apply 9i Release 2 Database Server Patch Set 6 (4163455)
• Add Opatch to oracle Home – (2617419)
• Apply additional patchs via Opatch
• Verify Installation
1.1 Create Oracle Home 9.2.0.7 with 9i 9.2.0.1.0 Database 64-bit CD’s (3)
• Install everything. – Enterprise Edition
• Verify rsh command across the Nodes before starting the Installer
• cd /opt/media2/oracle/oracle9.2.0.1_64/Disk1
• ./runInstaller
• If this is a RAC install, make sure installer recognizes all nodes and make sure to SELECT all nodes to install home.
• If this is a RAC install, make sure when prompted to provide a shared location for /var/opt/oracle/srvConfig.loc
1.2 Apply 9.2.0.7 Upgrade Patch – 4163445
• cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/Disk1
• ./runInstaller
• Select the products.xml file.
• Click Install.
• Run the $ORACLE_HOME/root.sh script from a root session when prompted by the installer. If you are applying the patch set in a cluster database environment, then the root.sh script should be run in the same way on both the local node and participating nodes.
• Click OK on the installer prompt window. Once the installation has completed successfully, it will display End of Installation
• Click Exit, and confirm to exit the Oracle Universal Installer.
1.3 Install Opatch – 2617419
• Go to 9.2.0.7 Oracle Home
• % mkdir OPatch
• % cd OPatch
• % cp –rp /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/Opatch/* .
• Place /u01/app/oracle/product/9.2.0.7/OPatch in $PATH – GEMS.profile.ora
• Create a set9207patch command that sets the LD_LIBRARY_PATH to $ORACLE_HOME/lib32: $ORACLE_HOME /srvm/lib. Make sure this is set when applying patches, especially in a RAC environment.
• In $ORACLE_HOME/oui/oraparam.ini - Required for RAC only
Comment the following line CLUSTERWARE={"oracle.crs","10.1.0.2.0"}
Add line
VENDORCLUSTERWARE=TRUE in oraparam.ini

For all below patches, some are considered “rolling” patches, and require a slightly different dialog requiring manual selection of each node to apply patch.
1.4 Apply Patch 4533592
• % /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4533592
• % opatch apply
• cd $ORACLE_HOME/install
• chmod 744 changePerm.sh
• ./changePerm.sh
• Enter y when prompted
1.5 Apply Patch 4622088
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4622088
• % opatch apply
1.6 Apply Patch 4573980
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4573980
• % opatch apply
1.7 Apply Patch 4651385
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4651385
• % opatch apply
1.8 Apply Patch 4661160
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4661160
• % opatch apply

1.9 Apply Patch 5049060
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/ 5049060
• % opatch apply
• Special Instructions – executed on each database - Critical Patch Update Post-Installation Steps - AFTER EACH Database Upgrade.
1.10 Apply Patch 4721492
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4721492
• % opatch apply
1.11 Apply Patch 2300743
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/2300743
• % opatch apply
1.12 Apply Patch 5016142
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/5016142
• % opatch apply
1.13 Apply Patch 4696143
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4696143
• % opatch apply
1.14 Apply Patch 4742607
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4742607
• % opatch apply
1.15 Apply Patch 4451759
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4451759
• % opatch apply
1.16 Apply Patch 4942939
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4942939
• % opatch apply
1.17 Apply Patch 4594912
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4594912/4599610
• % opatch apply
1.18 Apply Patch 3332598
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/3332598
• % opatch apply
1.19 Apply Patch 5103362
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/5103362
• % opatch apply
1.20 Apply Patch 3845730
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/3845730
• % opatch apply
1.21 Apply Patch 5059488
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/5059488
• % opatch apply
1.22 Apply Patch 5163411
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/5163411
• % opatch apply
1.23 Apply Patch 5368853
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/5368853
• % opatch apply
1.24 Apply Patch 4594917
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4605712
• % opatch apply
1.25 Apply Patch 4483951
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4483951
% opatch apply
1.26 Apply Patch 4651385
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4651385
• % opatch apply

1.27 Apply Patch 4661160
• % cd /admin/orapatch/oracle/patch/oracle64/9.2.0.7/patches/4661160
% opatch apply
1.28 Verify patch list
• % opatch lsinventory – should look something like below.


Installed Patch List:
=====================
1) Patch 5368853 applied on Thu Jul 27 17:05:33 GMT 2006
[ Base Bug(s): 4402255 5201089 5007265 4673610 4047167 4949040 4632780 4928144 4752555 4863048 4607458 4684373 3865608 3328894 5368853 4658188 ]
2) Patch 4605712 applied on Thu Jul 20 23:14:13 GMT 2006
[ Base Bug(s): 4594917 ]
3) Patch 5163411 applied on Mon Jun 26 17:00:10 GMT 2006
[ Base Bug(s): 5163411 ]
4) Patch 3332598 applied on Fri May 26 06:25:17 GMT 2006
[ Base Bug(s): 3332598 ]
5) Patch 5103362 applied on Fri May 26 06:13:33 GMT 2006
[ Base Bug(s): 5103362 ]
6) Patch 3845730 applied on Fri May 26 06:10:16 GMT 2006
[ Base Bug(s): 3845730 ]
7) Patch 5059488 applied on Fri May 26 06:04:06 GMT 2006
[ Base Bug(s): 5059488 ]
8) Patch 5049060 applied on Fri May 26 05:57:22 GMT 2006
[ Base Bug(s): 4754842 5021058 4547566 2701372 4567971 4567854 4516151 3119415 5049060 4572340 5049062 4121749 4049345 4547641 4751923 ]
9) Patch 4599610 applied on Fri Apr 21 17:58:46 GMT 2006
[ Base Bug(s): 4594912 ]
10) Patch 4942939 applied on Fri Apr 21 17:51:11 GMT 2006
[ Base Bug(s): 4942939 ]
11) Patch 4451759 applied on Fri Apr 21 17:38:53 GMT 2006
[ Base Bug(s): 4451759 ]
12) Patch 4742607 applied on Fri Apr 21 17:33:09 GMT 2006
[ Base Bug(s): 4742607 ]
13) Patch 4696143 applied on Fri Apr 21 17:27:07 GMT 2006
[ Base Bug(s): 4696143 ]
14) Patch 5016142 applied on Fri Apr 21 17:17:40 GMT 2006
[ Base Bug(s): 5016142 ]
15) Patch 2300743 applied on Fri Apr 21 16:32:28 GMT 2006
[ Base Bug(s): 2300743 ]
16) Patch 4721492 applied on Sat Feb 25 00:33:46 GMT 2006
[ Base Bug(s): 4721492 ]
17) Patch 4533592 applied on Sun Jan 29 19:32:00 GMT 2006
[ Base Bug(s): 4533592 ]
18) Patch 4661160 applied on Sun Jan 29 19:13:20 GMT 2006
[ Base Bug(s): 4661160 ]
19) Patch 4651385 applied on Sun Jan 29 19:09:46 GMT 2006
[ Base Bug(s): 4651385 ]
20) Patch 4573980 applied on Sun Jan 29 18:19:24 GMT 2006
[ Base Bug(s): 4573980 ]
21) Patch 4622088 applied on Sun Jan 29 18:12:24 GMT 2006
[ Base Bug(s): 4192148 ]
1.29 RAC Only – Copy executable to Oracle Home
cp $ORACLE_HOME/lib/libskgxn9.so $ORACLE_HOME/lib/libskgxn9.so.ora
cp /opt/ORCLcluster/lib/9iR2/libskgxn2_64.so $ORACLE_HOME/lib/libskgxn9.so

Only execute the following if LLT install. Skip if UDP install
cp $ORACLE_HOME/lib/libskgxp9.so $ORACLE_HOME/lib/libskgxp9.so.ora
cp /opt/ORCLcluster/lib/9iR2/libskgxp92_64.so $ORACLE_HOME/lib/libskgxp9.so
cp $ORACLE_HOME/lib/libskgxpu.so $ORACLE_HOME/lib/libskgxpu.so.ora
cp /opt/ORCLcluster/lib/9iR2/libskgxp92_64.so $ORACLE_HOME/lib/libskgxpu.so

1.30 ODM Only - Link Veritas ODM (Oracle Disk Manager) Library to Oracle – on all nodes.
Login as oracle
Set environment
cd $ORACLE_HOME/lib
mv libodm9.so libodm9.so.ora
ln -s /opt/VRTSodm/lib/sparcv9/libodm.so libodm9.so

This is required for RAC if using Veritas DBE/AC, but ODM (like Quick IO), can be used on any database if installed. When Oracle databases are started up, look for the following entry in the alert.log file:

Oracle instance running with ODM: VERITAS X.X ODM Library, Version X.X
1.31 RAC ONLY – Relink Oracle homes with UDP – NOT LLT – NOT DEFAULT!.
Only do this step if prescribed to be UDP install.
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_on ipc_udp ioracle

When Oracle databases are started up, look for the following entry in the alert.log file:

cluster interconnect IPC version:Oracle UDP/IP with Sun RSM disabled

With UDP, additional interconnect statements need to be added to init.ora’s

Example:
glrac1.cluster_interconnects=192.168.200.3:192.168.201.3
glrac2.cluster_interconnects=192.168.200.6:192.168.201.6
glrac3.cluster_interconnects=192.168.200.9:192.168.201.9

You will need to ping the interconnect IP’s from each node:

e.g.
From glrac1’s server
ping 192.168.200.3
192.168.200.3 is alive
ping 192.168.201.3
192.168.201.3 is alive

2 Upgrade Existing 9i Database(s).

2.1 Set Database to point to new ORACLE HOME
Change Oracle Home for database in oratab in /var/opt/oracle and set environment. Verify following variables are pointing to the new Oracle Home:
$ORACLE_HOME, $LD_LIBRARY_PATH, $ORA_NLS33, $PATH

Link $ORACLE_HOME/dbs/init${ORACLE_SID}.ora to $ORACLE_ADMIN/${ORACLE_SID}/pfile/ init${ORACLE_SID}.ora
cd $ORACLE_HOME/dbs
ln –s /u01/app/oracle/admin/{ORACLE_SID}/pfile/init${ORACLE_SID}.ora

Set environment and verify following variables are pointing to the new Oracle Home:
$ORACLE_HOME, $LD_LIBRARY_PATH, $ORA_NLS33, $PATH
2.2 Verify/Change Init.ora parameters – first save off current Init.ora
cd $ORACLE_ADMIN/$ORACLE_SID/pfile (may have to be modified for RAC)
cp –p init$ORACLE_SID.ora init$ORACLE_SID.ora_$DATE_Bkp_Pre_mig

shared_pool_size - at least 150Mb
java_pool_size 250MB - at least
large_pool_size 20MB – at least
remote_login_password_file=none
nls_length_semantics=byte
aq_tm_processes = 0
job_queue_processes = 0
system_trig_enabled=false
If RAC Database also:
*.cluster_database=FALSE
*.cluster_database_instances=1
in init${ORACLE_SID}.ora

2.3 Create Log Directory For Migration Log.
mkdir $ORACLE_ADMIN/${ORACLE_SID}/create/9207_migration

2.4 Startup Database for Migrate.
sqlplus "sys as sysdba"
startup migrate
2.5 Drop SYS Stats
execute dbms_stats.delete_schema_stats(‘SYS’);
2.6 Run preliminary sqls.
Execute the following sqls and spool the out put
Spool option_pre.lst
col parameter format a40
col value format a30
select * from from v$option
spool off
spool dba_registry_pre.lst
select * from dba_registry;
spool off

spool invalid_pre_$ORACLE_SID.lst
@$dbsql/apps_obj.sql
@$dbsql/apps_obj_all.sql
Column owner format a12
Column object format a30
Column type format a30
Select substr(owner,1,12) owner, Substr(object_name,1,30) object,
Substr(object_type,1,30) type from dba_objects where status <>'VALID'
order by owner, object_name ;
Select substr(owner,1,12) owner, Count(*) from dba_objects where status <>'VALID'
group by owner
order by owner;
spool off

2.7 Upgrade Database.
spool patch_${ORACLE_SID}.log
@$ORACLE_HOME/rdbms/admin/catpatch.sql
spool off

Review the patch_${ORACLE_SID}.log file for errors and re-run the catpatch script after correcting any problems.

2.8 Compile Invalids.
@$ORACLE_HOME/rdbms/admin/utlrp.sql

2.9 Verify v$option and dba_registry and compare with the spool files taken before migration
Spool option._post.lst
col parameter format a40
col value format a30
select * from from v$option
spool off
spool dba_registry_post.lst
select * from dba_registry;
spool off
2.10 Critical Patch Update Post-Installation Steps:
(Please Note for RAC specific instances - The parameter cluster_database has to be "FALSE" and cluster_instances=1 )

Exit of of sqlplus

cd /u01/app/oracle/product/9.2.0.7/cpu/CPUJan2006 ( Make sure present working directory is /u01/app/oracle/product/9.2.0.7/cpu/CPUApr2006 before running catcpu.sql)

sqlplus "sys as sysdba"
@catcpu.sql

Following errors can be ignored:
ORA-00942: table or view does not exist
ORA-00955: name is already used by an existing object
ORA-01430: column being added already exists in table
ORA-01432: public synonym to be dropped does not exist
ORA-01434: private synonym to be dropped does not exist
ORA-01435: user does not exist
ORA-01917: user or role 'XDB' does not exist
ORA-01920: user name '' conflicts with another user or role name
ORA-01921: role name '' conflicts with another user or role name
ORA-02303: cannot drop or replace a type with type or table dependents
ORA-02443: Cannot drop constraint - nonexistent constraint
ORA-04043: object does not exist
ORA-06512: at line . If this error follow any of above errors, then can be safely ignored.
ORA-14452: attempt to create, alter or drop an index on temporary table already in use
ORA-29809: cannot drop an operator with dependent objects
ORA-29830: operator does not exist
ORA-29832: cannot drop or replace an indextype with dependent indexes
ORA-29844: duplicate operator name specified
ORA-29931: specified association does not exist

Number of Invalids may increases after this script. So

@$ORACLE_HOME/rdbms/admin/utlrp.sql

Verify catcpu.sql using
select * from sys.registry$history ;
ACTION_TIME ACTION NAMESPACE
--------------- ------------------------------ ------------------------------
VERSION ID
------------------------------ ----------
COMMENTS
--------------------------------------------------------------------------------
20-APR-06 CPU
5049060
CPUApr2006

2.11 Gather SYS Stats:
execute dbms_stats.gather_schema_stats ('SYS',degree=>20,cascade=>TRUE);

2.12 Shutdown Database
shutdown immediate;

3 Posts Database Migration

3.1 Revert Init.ora file – May vary with RAC
cd $ORACLE_ADMIN/${ORACLE_SID}/pfile/
cp init$ORACLE_SID.ora_$DATE_Bkp_Pre_mig init$ORACLE_SID.ora

3.2 Modify Listener Configs as required
Add the 9207LISTENER entry in the lisnrtab – as required
Change the listener.ora file – as required

3.3 Make appropriate links to tnsnames.ora and listener.ora from $TNS_ADMIN

3.4 Get Statspack noresp sql from previous 9i home
sptrunc_noresp.sql
spreport_noresp.sql
sprepins_noresp.sql
sppurge_noresp.sql
3.5 Start The Database Normally
Add the entry of the event
Tnsnames.ora to be moved before startup migrate if the TNS_ADMIN is not /var/opt/oracle

1 comment:

Anonymous said...

you can open any search engine and get to know more about the way of repair pst, provided by some applications