Professional Documents
Culture Documents
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)
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
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;
}
9-Mount database
NOTE – Disable block change tracking
run
{
set newname for database to '+DATA';
restore database;
switch datafile all;
}
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;
/
Sql> startup
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;
/
==> 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;
oracle@TARGET:ORCL1>cd $ORACLE_HOME/rdbms/admin
sql>@utlrp.sql
DISABLE THREAD#2—
File created.
NAME
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------
+DATA/ORCL1/control01.ctl
+DATA/ORCL1/control02.ctl
6 rows selected.
Database altered.
Database altered.
GROUP# THREAD#
---------- ----------
1 1
2 1
4 2
5 1
6 2
Database altered.
Database altered.
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
NAME
------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------
+DATA/ORCL1/TEMPFILE/def_temp.460.1054924023
NAME
---------
ORCL