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
Post a Comment