Upgrade Non-CDB to Oracle Database 21c (Manual) - Replay Upgrade
This article provides an overview of a manual upgrade of an existing non-CDB database to Oracle 21c.
oracle 21cconfigurationintermediate
by OracleDba
19 views
This article provides an overview of a manual upgrade of an existing non-CDB database to Oracle 21c.
1
19c, 18c, 12.212
yum install -y oracle-database-preinstall-21c
yum update -y1234567891011121314151617181920212223242526272829303132
export ORACLE_HOME=$ORACLE_BASE/product/21.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=cdb1
export SOFTWARE_DIR=/u01/software
export ORA_INVENTORY=/u01/app/oraInventory
mkdir -p ${ORACLE_HOME}
cd $ORACLE_HOME
/bin/unzip -oq ${SOFTWARE_DIR}/LINUX.X64_213000_db_home.zip
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=${ORA_INVENTORY} \
SELECTED_LANGUAGES=en,en_GB \
ORACLE_HOME=${ORACLE_HOME} \
ORACLE_BASE=${ORACLE_BASE} \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
As a root user, execute the following script(s):
1. /u01/app/oracle/product/21.0.0/dbhome_1/root.sh1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
#dbca -silent -deleteDatabase -sourceDB cdb1 -sysDBAUserName sys -sysDBAPassword SysPassword1
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 -sid cdb1 -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword SysPassword1 \
-systemPassword SysPassword1 \
-createAsContainerDatabase true \
-numberOfPDBs 0 \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga \
-totalMemory 1536 \
-storageType FS \
-datafileDestination "/u02/oracle/" \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
Prepare for db operation
10% complete
Copying database files
40% complete
Creating and starting Oracle instance
42% complete
46% complete
52% complete
56% complete
60% complete
Completing Database Creation
66% complete
69% complete
70% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/cdb1.
Database Information:
Global Database Name:cdb1
System Identifier(SID):cdb1
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb13.log" for further details.
$
sqlplus / as sysdba <<EOF
alter system set db_recovery_file_dest_size=40g;
alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';
alter system set db_create_file_dest = '/u02/oradata';
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
exit;
EOF
alter database upgrade sync on;
alter database property set upgrade_pdb_on_open='true';123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=mydb
sqlplus / as sysdba <<EOF
shutdown immediate;
startup open read only;
begin
dbms_pdb.describe(
pdb_descr_file => '/tmp/mydb.xml');
end;
/
shutdown immediate;
exit;
EOF
export ORACLE_HOME=$ORACLE_BASE/product/21.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=cdb1
sqlplus / as sysdba
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
SQL>
create pluggable database mydb using '/tmp/mydb.xml' copy;
2021-08-21T09:59:43.993485+00:00
create pluggable database mydb using '/tmp/mydb.xml' copy
2021-08-21T09:59:44.027947+00:00
Opatch validation is skipped for PDB MYDB (con_id=4)
2021-08-21T09:59:52.674090+00:00
MYDB(4):Endian type of dictionary set to little
****************************************************************
Pluggable Database MYDB with pdb id - 4 is created as UNUSABLE.
If any errors are encountered before the pdb is marked as NEW,
then the pdb must be dropped
local undo-1, localundoscn-0x0000000000000009
****************************************************************
MYDB(4):Pluggable database MYDB pseudo opening
MYDB(4):SUPLOG: Initialize PDB SUPLOG SGA, old value 0x0, new value 0x18
MYDB(4):Autotune of undo retention is turned on.
MYDB(4):Undo initialization recovery: Parallel FPTR complete: start:5860713 end:5860715 diff:2 ms (0.0 seconds)
MYDB(4):Undo initialization recovery: err:0 start: 5860709 end: 5860715 diff: 6 ms (0.0 seconds)
MYDB(4):[18913] Successfully onlined Undo Tablespace 2.
MYDB(4):Undo initialization online undo segments: err:0 start: 5860715 end: 5860764 diff: 49 ms (0.0 seconds)
MYDB(4):Undo initialization finished serial:0 start:5860709 end:5860768 diff:59 ms (0.1 seconds)
MYDB(4):Database Characterset for MYDB is AL32UTF8
MYDB(4):Pluggable database MYDB pseudo closing
MYDB(4):JIT: pid 18913 requesting stop
MYDB(4):Closing sequence subsystem (5860811822).
MYDB(4):Buffer Cache flush started: 4
MYDB(4):Buffer Cache flush finished: 4
Completed: create pluggable database mydb using '/tmp/mydb.xml' copy
alter pluggable database mydb open read write;
2021-08-21T10:03:35.400676+00:00
alter pluggable database mydb open read write
...
****************************************************************
Post plug operations are now complete.
Pluggable database MYDB with pdb id - 4 is now marked as NEW.
****************************************************************
...
MYDB(4):alter pluggable database application APP$CDB$CATALOG begin upgrade
'19.0.0.0.0' to '21.0.0.0.0.partial' on error capture
MYDB(4):Completed: alter pluggable database application APP$CDB$CATALOG begin upgrade
'19.0.0.0.0' to '21.0.0.0.0.partial' on error capture
...
MYDB(4):SERVER ACTION=NONCDB_TO_PDB id=: Converted non-CDB to PDB in release 21.3.0.0.0 Container=MYDB Id=4
MYDB(4):alter pluggable database application app$cdb$pdbonly$ncdbtopdb end upgrade
MYDB(4):Completed: alter pluggable database application app$cdb$pdbonly$ncdbtopdb end upgrade
2021-08-21T10:31:03.540665+00:00
MYDB(4):Finished Conversion from non-CDB on PDB Open
Violations: Type: 2, Count: 1
Pluggable database MYDB opened read write
Completed: alter pluggable database mydb open read write
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
4 MYDB READ WRITE NO
SQL>
alter pluggable database mydb save state;
column name format a10
column message format a60
select time, name, message from pdb_plug_in_violations order by time;
cd $ORACLE_HOME/OPatch
./datapatch -pdbs MYDB12345
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=mydb
dbca -silent -deleteDatabase -sourceDB mydb -sysDBAUserName sys -sysDBAPassword SysPassword11234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
export ORACLE_HOME=/u01/app/oracle/product/21.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=cdb1
#dbca -silent -deleteDatabase -sourceDB cdb1 -sysDBAUserName sys -sysDBAPassword SysPassword1
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 -sid cdb1 -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword SysPassword1 \
-systemPassword SysPassword1 \
-createAsContainerDatabase true \
-numberOfPDBs 0 \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga \
-totalMemory 1536 \
-storageType FS \
-datafileDestination "/u02/oradata/" \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
sqlplus / as sysdba <<EOF
alter system set db_recovery_file_dest_size=40g;
alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';
alter system set db_create_file_dest = '/u02/oradata';
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
exit;
EOF
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=mydb
#dbca -silent -deleteDatabase -sourceDB mydb -sysDBAUserName sys -sysDBAPassword SysPassword1
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname mydb -sid mydb -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword SysPassword1 \
-systemPassword SysPassword1 \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-memoryMgmtType auto_sga \
-totalMemory 1536 \
-storageType FS \
-datafileDestination "/u02/oradata/" \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
sqlplus / as sysdba <<EOF
alter system set db_recovery_file_dest_size=40g;
alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';
alter system set db_create_file_dest = '/u02/oradata';
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
exit;
EOFPlease to add comments
No comments yet. Be the first to comment!