This note describes the procedure of migrating as well as upgrading an Oracle 10g Release 2 database to Oracle 12c (12.1.0.2) using a combination of RMAN Incremental backups and the new Oracle 12c command line parallel upgrade utility.
This method minimizes the outage required for the migration as well as database upgrade and the outage is limited to the time it takes to backup the last set of archive log files generated since the last Level 1 incremental backup and the time taken to run the catupgrd.sql upgrade script (which can now be run from the command line in parallel).
In this example we are moving a database from one Linux host 5.3 to another Linux 5.7 host, moving from ASM to non-ASM as well as upgrading the database.
Let us take a look at the steps involved.
Copy the new 12c Pre-Upgrade scripts to the Oracle 10g database server and execute it in the Oracle 10.2.0.5 database
In the Oracle 10g database execute the Pre-Upgrade fixup scripts
Take a level 0 RMAN Incremental backup
Copy the password file and init.ora from 10g source to Oracle 12c target database environment
Edit the init.ora parameter file in the 12c database environment and make changes like ….
In the Oracle 12c environment start the instance in NOMOUNT state
Restore control file backup
Restore Level 0 backup
Take a level 0 RMAN Incremental backup
Take a backup of the archive log files generated since the last Level 1 incremental backup using the command
Copy the archivelog backup to target and register
Run a LIST BACKUP OF ARCHIVELOG command and note the last archive log file which has been backed up
Recover the database until the sequence number noted above + 1
Open the database with RESETLOGS UPGRADE
Shut down the database and open it in the Oracle 12c environment in STARTUP UPGRADE mode
Execute the catctl.pl perl script which will call the catupgrd.sql in parallel mode
Review the upgrade summary log file
Run post-upgrade steps
Upgrade timezone data to version 18
Recompile INVALID Objects
Run utlrp followed by utluiobj.sql