18 September 2010

step by step upgrade Oracle Database from version 10g (10.2.0.1) to 11g R1 (11.1.0.6)


This post covers step by step upgrade of Oracle Database from version 10g (10.2.0.1) to 11g R1 (11.1.0.6) on Unix. You can use this document (with few additional steps mentioned in upgrade guide) to upgrade from 9i or for database on Windows Operating System.
.
Important points before you start 11g upgrade
1. Read Chapter 1, 2 & 3 of Database Upgrade Guide here here
2. Read 11g Installation Guide for your operating system from here
3. Direct Upgrade is possible from 10.2.0.1 and higher
4. There are two methods to upgrade database
a)
Database Upgrade Assistant (DBUA) and
  b) Manual Upgrade
We are going to use Manual Upgrade
5. Install 11g database software in different ORACLE_HOME from source Database
.
Upgrade Steps
1. Prepare to Upgrade
1.1 Install 11g in different (new) ORACLE_HOME with following consideration
a) When prompted for Upgrade an Existing Database (Select NO)

b) On Select Configuration Option  select Install Software Only

.
Use Installation Guide from here
1.2 Analyze database using pre-upgrade information tool ( utlu111i.sql sql script available at 11g_oracle_homne/rdbms/admin/utlu111i.sql  run it from source database i.e. 10g)
cd $11g_oracle_home/rdbms/admin 
sqlplus “/as sysdba”
SQL>spool muthu.log
SQL>@utlu111i.sql

1.3 Check the output of the Pre-Upgrade Information Tool in muthu.log and fix any issues
Obsolete/Deprecated Parameters: [Update Oracle Database 11.1 init.ora or spfile]
**************************************************
–> “background_dump_dest” replaced by  “diagnostic_dest”
–> “user_dump_dest” replaced by  “diagnostic_dest”
–> “core_dump_dest” replaced by  “diagnostic_dest”

To fix this obsolete parameter, comment out from initialization parameter file and replace with new parameter like comment above three deprecated parameters and add *.diagnostic_dest
WARNING: –> Database is using an old timezone file version.
…. Patch the 10.2.0.1.0 database to timezone file version 4
…. BEFORE upgrading the database.  Re-run utlu111i.sql after
…. patching the database to record the new timezone file version.

To find time zone file version on source database (10g) run
SQL> select * from v$timezone_file;
If time zone file version is less than 4 then apply time zone patch  5632264 manually for 10.2.0.1 database
1.4 Check invalid objects
SQL> select object_name, owner, object_type from all_objects where status like ‘INVALID’;
1.5 Check version & status of all database components
SQL>select comp_name,version, status from dba_registry;
1.6 Take backup of source database i.e. 10g database
1.7 If you are using spfile, create pfile
SQL> create pfile from spfile ;
This will create pfile in 10g $ORACLE_HOME/dbs/init[SID].ora
1.8 Copy initialization file (pfile) from source (10g) to target (11g)
1.9 Adjust initialization parameter specific to 11g like
a) Remove *.background_dump_dest, *.core_dump_dest, *.user_dump_dest and add
*.diagnostic_dest=’/11g_base’  (11g Base Directory)
b) Change
*.compatible=’10.2.0.1.0?
to
*.compatible=’11.1.0?

2. Upgrade Database
2.1 Shut down source database (10g) -  downtime starts here
sqlplus “/as sysdba”
SQL>shutdown immediate
2.2 Set your environment variables to Oracle Database 11g Release 1 (11.1) :
export ORACLE_HOME=/u01/oracle/11gbase/11.1.0
export ORACLE_SID=TEST
export PATH=$ORACLE_HOME/bin:$PATH
2.3 Start Upgrade
sqlplus “/as sysdba”
SQL> startup upgrade
Check shared_pool & java_pool size, to set new values

SQL> spool upgrade.log
SQL> @catupgrd.sql  (Upgrade process shut down database after catupgrd.sql)
Check alert log in 11g at
/11gBase_Install/diag/rdbms/[sid]/[SID]/trace/alert_[SID].log
2.4 Run Post-Upgrade Status Tool provides a summary of the upgrade
SQL> startup
SQL>@utlu111s.sql

2.5 Compile Invalid Objects
SQL>@utlrp.sql
Check invalid objects
SQL> select count(*) from dba_objects where status like ‘INVALID’;

.
3. Post Upgrade steps
3.1 Check status of database components
SQL>select comp_name,version, status from dba_registry;
3.2 Copy tnsnames.ora, listener.ora, sqlnet.ora and include file from source (10g) oracle_home to target (11g) oracle_home

No comments: