You are on page 1of 5

Upgrade Oracle database from 12c (12.1.0.2) to 19c (19.3.0.

0) using the RMAN backup

Environment details-
SOURCE-
Source Oracle Database – ORCL
Oracle DB Version – 12.1.0.2
Source DB server - PROD1 / PROD2
Environment - (RAC)
OS - Unix

Target –
Target oracle db name – ORCL1
Oracle DB version – 19.3
DB server - TARGET
Environment – Standalone (GRID+ASM)

Task Need to be done –


- Migrate ORCL Db on TARGET DB server
- Change DB name from ORCL to ORCL1
- Upgrade ORCL1 in 19c.

Challenge s –
1- RAC to Non Rac
2- Upgrade 12.1.0.2 to 19c (we don’t have 12c binaries available on TARGET server, will use 19c binaries only)
3- Change DB name from ORCL to ORCL1
4- ASM directory structure must be created with new DB name
DISKGROUP names are same on Source and Target
5- Move spfile to ASM diskgroup
6- Add database to oracle restart

steps for the activity-

Created directories as per /var/oracle/admin/ORCL1/audit

1- Changes ins spfile.

*.db_unique_name='ORCL1' --------------------------Must be target DB name so make sure ASM file location


Removed UNDO parameter as RAC two node need individual UNDO for every instance not needed in standalone

2- Take a full rman backup (Hot/Cold) –Using cold backup here.

RUN
{
ALLOCATE CHANNEL ch1 TYPE DISK;
BACKUP DATABASE FORMAT '/backup/ORCL_FULLBACKUP/%d_D_%T_%u_s%s_p%p';
sql 'alter system switch logfile';
sql 'alter system switch logfile';
Backup archivelog all format '/backup/ORCL_FULLBACKUP/%d_A_%T_%u_s%s_p%p';
Backup current controlfile format '/backup/ORCL_FULLBACKUP/%d_C_%T_%u';
RELEASE CHANNEL ch1;
}

5-SCP backup to target server

6-Set environment of 19c.


7-STARTUP NOMOUNT from above created pfile;
8-Restore controlfile

Rman>restore controlfile from ‘/backup/DIR/control.ctl’;

9-Mount database
NOTE – Disable block change tracking

10- Restore database (Recover database in case hot backup)

run
{
set newname for database to '+DATA';
restore database;
switch datafile all;
}

9- ALTER DATABASE OPEN RESETLOGS UPGRADE;


10- select status from v$instance ----Must be in migrate mode
11- Start Upgrade— Make sure environment must be set for new DB

cd $ORACLE_HOME/rdbms/admin
/opt/product/19/db/perl/bin/perl catctl.pl -l /backup/ORCL_FULLBACKUP/ -n 4 catupgrd.sql

12- After completion upgrade process . Start database in upgrade mode again to upgrade timezone

Sql>Startup upgrade;

SET SERVEROUTPUT ON
DECLARE
l_tz_version PLS_INTEGER;
BEGIN
l_tz_version := DBMS_DST.get_latest_timezone_version;
DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
DBMS_DST.begin_upgrade(l_tz_version);
END;
/

Shut down database , startup normal –

Sql> startup

Execute below statement –

SET SERVEROUTPUT ON
DECLARE
l_failures PLS_INTEGER;
BEGIN
DBMS_DST.upgrade_database(l_failures);
DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
DBMS_DST.end_upgrade(l_failures);
DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/

SQL> SELECT * FROM v$timezone_file;


SQL> select TZ_VERSION from registry$database;

==> If they differ after an upgrade then updating registry$database can be done by
SQL> update registry$database set TZ_VERSION = (select version FROM v$timezone_file);
SQL> commit;
SQL> set pagesize500
set linesize 100
select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version from dba_registry order by comp_name;

COMP_NAME STATUS VERSION


------------------------------ -------------------------------------------- ----------------------------------------
JServer JAVA Virtual Machine VALID 19.0.0.0.0
OLAP Analytic Workspace VALID 19.0.0.0.0
Oracle Application Express VALID 4.2.5.00.0
Oracle Database Catalog Views VALID 19.0.0.0.0
Oracle Database Java Packages VALID 19.0.0.0.0
Oracle Database Packages and T VALID 19.0.0.0.0
ypes

Oracle Database Vault VALID 19.0.0.0.0


Oracle Label Security VALID 19.0.0.0.0
Oracle Multimedia VALID 19.0.0.0.0
Oracle OLAP API VALID 19.0.0.0.0
Oracle Real Application Cluste OPTION OFF 19.0.0.0.0
rs

Oracle Text VALID 19.0.0.0.0


Oracle Workspace Manager VALID 19.0.0.0.0
Oracle XDK VALID 19.0.0.0.0
Oracle XML Database VALID 19.0.0.0.0
Spatial VALID 19.0.0.0.0

oracle@TARGET:ORCL1>cd $ORACLE_HOME/rdbms/admin

sql>@utlrp.sql

DISABLE THREAD#2—

SQL> sho parameter spfile

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
spfile string /opt/product/19/db/dbs/
spfileORCL1.ora
SQL> create pfile from spfile;

File created.

SQL> select name from v$controlfile;

NAME
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------
+DATA/ORCL1/control01.ctl
+DATA/ORCL1/control02.ctl

SQL> select group#, thread# , sequence#, status from v$log;

GROUP# THREAD# SEQUENCE# STATUS


---------- ---------- ---------- ----------------
1 1 13 INACTIVE
2 1 14 INACTIVE
3 2 4 INACTIVE
4 2 2 INACTIVE
5 1 15 CURRENT
6 2 3 INACTIVE

6 rows selected.

SQL> alter database disable thread 2;

Database altered.

SQL> alter database drop logfile group 3;

Database altered.

SQL> select group#,thread# from v$Log;

GROUP# THREAD#
---------- ----------
1 1
2 1
4 2
5 1
6 2

SQL> alter database drop logfile group 4;

Database altered.

SQL> alter database drop logfile group 6;

Database altered.

SQL> select member from v$logfile;

MEMBER
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------
+DATA_FRA/ORCL1/ONLINELOG/group_2.2082.1054924019
+DATA_FRA/ORCL1/ONLINELOG/group_1.2083.1054924019
+DATA_FRA/ORCL1/ONLINELOG/group_5.1982.1054924019

SQL> select name from v$tempfile;

NAME
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------
+DATA/ORCL1/TEMPFILE/def_temp.460.1054924023

SQL> select name from v$database;

NAME
---------
ORCL

CREATE PASSWORD FILE FOR USID NID ---

orapwd file=orapwORCL1 password=************ entries=10


RENAME DATABASE to ORCL1

nid target=sys/********** dbname=ORCL1 logfile=/backup/nid.log

sql>select name from v$database;


----------------
ORCL1

You might also like