Sunday, February 3, 2008

Upgradation from 8170 (32-Bit) to 8174 (64-Bit)

Upgradation from 8170 (32-Bit) to 8174 (64-Bit)
+++++++++++++++++++++++++++++++++++++++++++++++



1) Before upgradation, copy alert_.log file to alert__32bit.log

- cp /gemsora9/u01/app/oracle/admin/matstage/bdump/alert_matstage.log /gemsora9/u01/app/oracle/admin/matstage/bdump/alert_matstage.log_32bit8173

2) Take Invalid count and list of invalid objects and check system tablespace free space.

spool invalids.log
select owner,object_type,count(*) from dba_objects
where status='INVALUD' group by owner,object_type;
select owner,object_name,object_type from dba_objects
where status='INVALID' order by owner,object_type;
spool off


4) Modify the /var/opt/oracle/oratab for matstage to point 8.1.7.4 ORACLE_HOME (64bit)
ie /ora2/u01/app/oracle/product/8174_64bit

5) Exit and Relogin into the telnet session and make sure that your ORACLE_HOME is 8.1.7.4 (64-Bit) from env

6) Change the following init parameters in init.ora

- cp /gemsora9/u01/app/oracle/admin/matstage/pfile/initmatstage.ora /gemsora9/u01/app/oracle/admin/matstage/pfile/initmatstage.ora_32bit8173

_system_trig_enabled = false
aq_tm_processes = 0
job_queue_processes = 0
compatible =8.1.7


7) Create a soft link in 64bit ORACLE_HOME /gemsora9/u01/app/oracle/product/8174/dbs
- Cd $ORACLE_HOME (64 bit)/dbs
- ln -s $ORACLE_ADMIN/matstage/pfile/initmatstage.ora initmatstage.ora

8) Sqlplus internal or sys startup restrict your 8.1.7.0 database using the ORACLE_HOME of 8.1.7.4(64-bit).

9) Connect as internal and run the following:
- select * from duc$ where PACK='JIS$INTERCEPTOR$' ;
- If no rows were returned go to the next step. If a row was returned delete it using the following:
- delete from duc$ where PACK='JIS$INTERCEPTOR$' ;
- commit;

10) CONNECT / AS SYSDBA;
update obj$ set status=5 where type#=29 and owner#!=0;
commit;

- Spool $ORACLE_ADMIN/matstage/upgrade_8170_8174.log

Execute the following scripts as sys or internal
- ?@/rdbms/admin/catalog.sql
- ?@/rdbms/admin/catproc.sql
- ?@/rdbms/admin/catrep.sql
- @?/rdbms/admin/utlrp.sql

- Now change wordsize from 32 bit to 64 bit.

Connect internal
@?/rdbms/admin/utlip.sql

- Shutdown normal
- Startup the database, connect as internal or sys and run the following script to compile invalid objects.
- SQL>@?/rdbms/admin/utlrp.sql

-- If you get an ORA-29554 unhandled Java out of memory condition error,
simply rerun utlrp.sql again and it will pick up where it left off.

11) Shutdown the database
(Note: you may get an ORA-600 [729] error which is a harmless memory leak.
If that is the case, simply do a shutdown abort before continuing)

12) If some rows were deleted in step4, then insert the rows again.

- SQL> insert into duc$ (owner, pack, proc, field1, operation#, seq)
- values ('SYS','JIS$INTERCEPTOR$','USER_DROPPED',0,1,1);

Post upgradation steps :-

- Change the _SYSTEM_TRIG_ENABLED parameter in your init.ora as follows.
_SYSTEM_TRIG_ENABLED =TRUE

SQL> commit;

- Shutdown the database
- Modify the database startup parameters JOB_QUEUE_PROCESSES and AQ_TM_PROCESSES ,job_queue_processes ( and shared_pool_size / java_pool_size if you modified them earlier) back to their original values.
- Restart the database
- Check that you are able to startup & shutdown normally the database without hanging .

No comments: