Oracle 11.2.0.4 to 19c DB Upgrade

 

Step0: Linux should be minimum 7.9 , AIX should be minimum 7.1

Step 1: Check archive log generation size and request enough space to for archive location to keep archives atleast 7 days 

Step2:  request filesystem should be minimum 50GB

Step3: Install 19c software only and apply recent PSU patches.

Step4: Download preupgrade.jar from MOS 884522.1

 @19C_HOME/jdk/bin/java -jar $19C_HOME/rdbms/admin/preupgrade.jar TERMINAL TEXT

Log: @19C_HOME/cfgtoollogs/<ORACLE_SID>/preupgrade/preupgrade.log

take actions on recommend:

1. parameters manaully set

2. tablespace size increase

3. remove EM DB console config

4. remove OLAP catalog - SQL> @19C_HOME/olap/admin/catnoamd.sql

5. ignore APEX upgrade if APEX is not using

6. 

SQL>execute dbms_stats.gather_fixed_objects_stats;

SQL>execute dbms_stats.gather_dictionary_stats;

7. recompile invalid objects

SQL>@19C_HOME/rdbms/admin/utlrp.sql

SQL>set serveroutput on;

SQL>execute dbms_preup.invalid_objects;

8. empty recyclebin

SQL> purge dba_recyclebin;

9. Run pre-upgrade-fixups.sql script

SQL> @19C_BASE/cfgtoollogs/<ORACLE_SID>/preupgrade/preupgrade_fixups.sql

Step5: Create Flashback Guarantee restore point

SQL> select flashback_on from v$database; -- no need flashback enable ( some DB's required )

SQL> select name,open_mode,log_mode from v$database; -- archive enabled

set below parameter values:

SQL> show parameter recovery

NAME                                        TYPE            VALUE

---------------------------------        ------------        ----------

db_recovery_file_dest                string        

db_recovery_file_dest_size        big integer        0


SQL> select * from v$restore_point; -- no rows

SQL> create restore point pre_upgrade guarantee flashback database;

SQL> col name for a20

 col guarantee_flashback_database

col time for a60

set lines 300

select name,guarantee_flashback_database,time from v$restore_point;


###################### UPGRADE TASKS ####################

Step6: Copy sqlnet.ora, listener.ora, tnsnames.ora, spfile files from 11G_HOME to 19C_HOME

Step7: update with 19C_HOMEpaths and set below parameter to 11 ( to allow old passwords ) in sqlnet.ora file.

SQLNET.ALLOWED_LOGON_VERSION_SERVER=11

Step8: update the 19C_HOME path in listener.ora

Step9: Bring down the 11g database.

Step10: start the upgrade from 19C_HOME

SQL> startup upgrade

SQL> select name,open_mode,cdb,version,status from v$database,v$instance; -- status shows "open migrate"

SQL> exit;

Step11: Upgrade the DB components

@19C_HOME/perl catctl.pl -1 /home/oracle -n 8 catupgrd.sql & -- will run in background

output: 108 phases will complete.

monitor Logs: $ORACLE_BASE/cfgtoollogs/<ORACLE_SID>/upgrade* or $ORACLE_HOME/cfgtoollogs/<ORACLE_SID>/upgrade*

NOTE: 19C DB will shutdown after upgrade command completes.

Step12: Start the DB from 19C_HOME and check components.

SQL> startup;

SQL> select name,open_mode,cdb,version,status from v$database,v$instance; -- status shows OPEN

SQL> col comp_id for a10

col comp_name for a40

col version for a15

set lines 100

set pages 999

select comp_id,comp_name,version,status from dba_registry; -- status shows UPGRADED

Step13: Check the invalid objects and recompile

SQL> select count(*) from dba_objects where status='INVALID';

SQL> @?/rdbms/admin/utlrp.sql

SQL>select count(*) from dba_objects where status='INVALID';

Step14: Run postupgrade_fixups.sql

SQL> @19C_BASE/cfgtoollogs/<ORACLE_SID>/preupgrade/postupgrade_fixups.sql


###################### POST UPGRADE TASKS ####################

Step15: Check the timezone is 32 ( latest 42 )

SQL> select version from v$timezone_file;

NOTE: most of the time timezone is less than 32 for manuall upgrade steps. run below commands to make timezone 32 ( latest 42 )

SQL> shut immediate;

SQL> startup upgrade;

SQL> @?/rdbms/admin/utltz_upg_check.sql

SQL> @?/rdbms/admin/utltz_upg_apply.sql --> it will start DB automatically upgrade mode and after apply will restart in normal mode

check the timezone is now 32 or 42

SQL> select version from v$timezone_file;

Step16: run utluts.sql to check database components status from view dba_registry_log

SQL> @?/rdbms/admin/utlusts.sql TEXT --> sometimes java server and spatial will show invalid, continue below steps, after invalid recompile check once again component status

Step17: Run catuppst.sql to keep good performance

SQL> @?/rdbms/admin/catuppst.sql

Step18: Re-Run postupgrade_fixups.sql

SQL> @19C_BASE/cfgtoollogs/<ORACLE_SID>/preupgrade/postupgrade_fixups.sql

Step19: Check the invalid objects and recompile once again if found

SQL> select count(*) from dba_objects where status='INVALID';

SQL> @?/rdbms/admin/utlrp.sql

SQL>select count(*) from dba_objects where status='INVALID';

Step20: Re-run utluts.sql to check database components status from view dba_registry_log

SQL> @?/rdbms/admin/utlusts.sql TEXT  --> should shows all components are in VALID state.


###################### AFTER  UPGRADE  ####################

Step21: update 19C_HOME path in /etc/oratab

Step22: start the listener from 19C_HOME

Step23: Take rman full backup


###################### AFTER  1 week  ####################

Step24: Drop restore point

Step25: change parameter COMPATIBLE to '19.0.0'


###################### ROLLBACK ACTIONS ####################

Step21: 19C_HOME, shut down DB

SQL> shut immediate;

SQL>startup mount;

SQL> flashback database to restore point pre_upgrade;

SQL> shut immediate;


Step22: 11G_HOME, set 11g DB 

SQL> startup mount;

SQL> alter database open resetlogs;

SQL> drop restore point pre-upgrade;







Comments

Popular Posts

AWR Report Analysis

Goldengate 19c Installation with issue resolution

Oracle 11g Physical Standy Setup

Oracle 12c 2-node RAC setup in VMware Player 15 -- Part01

Oracle to Postgres

Execution_Explain Plan

Active Session History Analysis

General Queries

Fragmentation & Re-organisation

OEM patches & vulnerabilities