Oracle 12c Database : Upgrading to Oracle Database 12c

There are several methods available which can be used for Upgrading to Oracle Database 12c. You can choose the manual upgrade method, the export/import procedure, transportable tablespaces method or you can use the Database Upgrade Assistant (DBUA) graphical interface. Alternatively if you have a critical HA environment and cannot afford the downtime then you can use the Data Guard setup. However Oracle’s preferred and recommended method is the use of the DBCA. Here we will look at the DBCA and the manual upgrade method, upgrading an existing database from 11g to 12c.


Related Articles
Oracle 12c Database: New Features
Oracle 12c Database: Managing CDB and PDB tablespaces

Direct Upgrade Supported Versions

For a database to be able to be upgraded directly to 12c, it must already be at the 10.2.0.5+, 11.1.0.7+ or the 11.2.0.2+ version. If you have a database running at any other version then you have to use the indirect approach of first upgrading it to a supported version above and then you will be able to upgrade it to 12c. Here we will be performing a straight upgrade of the database from 11g to 12c and to a non-CDB database. The PDB conversion can be done later.

Using DBUA

The database upgrade assistant utility has been significantly improved, over the previous releases, in Oracle 12c. Using this you don’t have to perform any upgrade pre-requisites as everything will be done by the DBUA itself. Just make sure that your database is up and running and your current environment parameters are set to 12c. Then just run the DBUA utility.

Fig-1


The first screen allows you to choose what you want to do. You can upgrade a database or you can just move a database from a different Oracle Home to your current one. In this case let’s choose the first option.

Fig-2


The next screen allows you to select a database for upgrade. It will show you the source and the target Oracle Homes and their database versions. Choose your database. In our case it was only one i.e. orcl.
Fig-3
The upgrade assistant will now check for pre-requisites and will show the results on next screen.
Fig-4


There are two warnings as you can see. One of them is related to Db Console repository. Before 12c every database had a DB Console which has been deprecated in 12c and EM Express is used instead. Clicking on More Details link below will show how you can remove EM repository. Although its not required for successful upgrade to remove DB Console data but still its good practice and will save you time during upgrade. So log into your database and run the “emremove.sql” script located in 12c home in RDBMS folder.

SQL> @/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/emremove.sql
old 69: IF (upper('&LOGGING') = 'VERBOSE')
new 69: IF (upper('VERBOSE') = 'VERBOSE')

PL/SQL procedure successfully completed.


The second warning is related to network packages used in source database and as you can see it has value Yes in Fixable column. So you can just leave this as it is and DBUA will fix it itself. You can ignore this as well and it will work.
Fig-5


Here you can set different options for upgraded database. Click Next when you are OK.
Fig-6


You can choose whether you want to configure EM Express for database or not. You can also choose to register with EM Cloud if you already have.
Fig-7


This screen will allow you to move data files to new location if you want to. You can also set the new location for Flash Recovery Area.
Fig-8


You can upgrade the existing Listener as part of upgrade or you can configure a new one.
Fig-9


You can schedule a backup as well.
Fig-10


The database upgrade has started and may take sometime to complete depending on the size of your database and also options you choose during Wizard.
Fig-11


Once completion shows 100% you can use the link Review Results to view summary of what has been done. Click Close to end the Upgrade Assistant.

Verifying the Upgrade

The upgrade has been completed successfully. You can verify it by logging into your database and confirming the new version.
$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Aug 9 09:39:18 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
orcl

SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
PL/SQL Release 12.1.0.1.0 - Production
CORE 12.1.0.1.0 Production
TNS for Linux: Version 12.1.0.1.0 - Production
NLSRTL Version 12.1.0.1.0 - Production

Manual Upgrade

The DBUA is good for quick database upgrades. It is very simple to use and Oracle had pretty much mae it automatic. However, there may be a situation where you want to control every aspect of the upgrade. In that case you can use the manual upgrade process.


In this section we will demonstrate the manual upgrade process. Again here we will assume the same scenario of having to upgrade a the ORCL database from 11.2.0.3 to 12.1.0.0. We will start by copying the below mentioned two scripts from new Oracle 12C home to a temporary directory.

$ mkdir -p /tmp/upgrade
$ cp /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/preupgrd.sql /tmp/upgrade
$ cp /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/admin/utluppkg.sql /tmp/upgrade


Now log into your database which is required to be upgraded (in our case its called orcl) and execute the pre-upgrade script. This script will check if database is OK to be upgraded.

SQL> @/tmp/upgrade/preupgrd.sql
Loading Pre-Upgrade Package...
Executing Pre-Upgrade Checks...
Pre-Upgrade Checks Complete.
************************************************************
Results of the checks are located at:

/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade.log
Pre-Upgrade Fixup Script (run in source database environment):

/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade_fixups.sql
Post-Upgrade Fixup Script (run shortly after upgrade):

/u01/app/oracle/cfgtoollogs/orcl/preupgrade/postupgrade_fixups.sql
************************************************************
Fixup scripts must be reviewed prior to being executed.
************************************************************

************************************************************
====>> USER ACTION REQUIRED          <<====
************************************************************

The following are *** ERROR LEVEL CONDITIONS *** that must be addressed
prior to attempting your upgrade.
Failure to do so will result in a failed upgrade.
You MUST resolve the above errors prior to upgrade

************************************************************


The script produced three files. One of them is log file which will show if its OK to upgrade the database or not. The other two files are scripts which should be run before and after the upgrade process. The log file in our case did not listed any showstoppers. However there were some actions required to be performed. For example setting the Processes parameter value to 300 and dropping the DB Console repository. The pre-upgrade fix up script will perform all these actions.


So Next we will run the pre-upgrade fix up script which was created by previous script and located in location as specified below.

SQL> @/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade_fixups.sql
Pre-Upgrade Fixup Script Generated on 2013-08-16 19:33:30  Version: 12.1.0.1 Build: 006
Beginning Pre-Upgrade Fixups...
**********************************************************************
Check Tag:     DEFAULT_PROCESS_COUNT
Check Summary: Verify min process count is not too low
Fix Summary:   Review and increase if needed, your PROCESSES value.
**********************************************************************
Fixup Returned Information:
WARNING: --> Process Count may be too low
Database has a maximum process count of 300 which is lower than the
default value of 300 for this release.
You should update your processes value prior to the upgrade
to a value of at least 300.

For example:
ALTER SYSTEM SET PROCESSES=300 SCOPE=SPFILE
or update your init.ora file.

**********************************************************************

**********************************************************************
Check Tag:     EM_PRESENT
Check Summary: Check if Enterprise Manager is present
Fix Summary:   Execute emremove.sql prior to upgrade.
**********************************************************************
Fixup Returned Information:
WARNING: --> Enterprise Manager Database Control repository found in the database

In Oracle Database 12c, Database Control is removed during
the upgrade. To save time during the Upgrade, this action
can be done prior to upgrading using the following steps after
copying rdbms/admin/emremove.sql from the new Oracle home

- Stop EM Database Control:
$> emctl stop dbconsole

- Connect to the Database using the SYS account AS SYSDBA:
SET ECHO ON;
SET SERVEROUTPUT ON;
@emremove.sql

Without the set echo and serveroutput commands you will not
be able to follow the progress of the script.

**********************************************************************

**********************************************************************
Check Tag:     DBMS_LDAP_DEPENDENCIES_EXIST
Check Summary: Check for dependency on DBMS_LDAP package
Fix Summary:   Network Objects must be reviewed manually.
**********************************************************************
Fixup Returned Information:
WARNING: --> Existing DBMS_LDAP dependent objects
Database contains schemas with objects dependent on DBMS_LDAP package.
Refer to the Upgrade Guide for instructions to configure Network ACLs.
USER APEX_030200 has dependent objects.
**********************************************************************
**********************************************************************
Check Tag:     AMD_EXISTS
Check Summary: Check to see if AMD is present in the database
Fix Summary:   Manually execute ORACLE_HOME/oraolap/admin/catnoamd.sql script to remove OLAP.
**********************************************************************
Fixup Returned Information:
INFORMATION: --> OLAP Catalog(AMD) exists in database
Starting with Oracle Database 12c, OLAP is desupported.
If you are not using the OLAP Catalog component and want
to remove it, then execute the
ORACLE_HOME/oraolap/admin/catnoamd.sql script before or
after the upgrade.
**********************************************************************
**********************************************************************
[Pre-Upgrade Recommendations] **********************************************************************
*****************************************
********* Dictionary Statistics *********
*****************************************
Please gather dictionary statistics 24 hours prior to
upgrading the database.
To gather dictionary statistics execute the following command
while connected as SYSDBA:
EXECUTE dbms_stats.gather_dictionary_stats;
^^^ MANUAL ACTION SUGGESTED ^^^
**************************************************
************* Fixup Summary ************
4 fixup routines generated INFORMATIONAL messages that should be reviewed.
**************** Pre-Upgrade Fixup Script Complete *********************


Any steps that it could not perform will be listed in Manual Action Suggested section. As you can see above it is empty which means that we are now ready to perform the upgrade.


First copy the SPFile and Password files from 11g home to 12c home.

$ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora /u01/app/oracle/product/12.1.0/dbhome_1/dbs/
$ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapworcl /u01/app/oracle/product/12.1.0/dbhome_1/dbs/


Now set the ORACLE_SID environment parameter to ORCL but ORACLE_HOME to new 12C home. Here is how you can do this.

$ export ORACLE_SID=orcl
$ ORAENV_ASK=NO
$ . oraenv

The Oracle base has been set to /u01/app/oracle


Now open the database in Upgrade mode. Before logging in using this method first make sure that database is closed in 11g home.

$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Aug 16 21:31:01 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup upgrade
ORACLE instance started.
Total System Global Area  839282688 bytes
Fixed Size                            2293928 bytes
Variable Size                        557846360 bytes
Database Buffers               276824064 bytes
Redo Buffers                         2318336 bytes
Database mounted.

Database opened.


Exit SQL*PLUS and run the actual upgrade script using shell window as shown below.
$ cd $ORACLE_HOME/rdbms/admin
$ $ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql


This script will take sometime and has lengthy output and I have uploaded it here for your viewing.


The database has been upgraded and you can check the status by running the utlu121s.sql script as shown below.

$ rlwrap sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sat Aug 17 00:59:36 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area  839282688 bytes
Fixed Size                                2293928 bytes
Variable Size                        746590040 bytes
Database Buffers                88080384 bytes
Redo Buffers                          2318336 bytes
Database mounted.
Database opened.
SQL> @utlu121s.sql
.
Oracle Database 12.1 Post-Upgrade Status Tool         08-17-2013 01:01:01
.
Component                                 Current      Version  Elapsed Time
Name                                      Status         Number  HH:MM:SS
Oracle Server                             UPGRADED   12.1.0.1.0  00:43:33
JServer JAVA Virtual Machine              VALID      12.1.0.1.0  00:08:34
Oracle Workspace Manager                  VALID      12.1.0.1.0  00:03:07
OLAP Analytic Workspace                   VALID      12.1.0.1.0  00:01:08
Oracle OLAP API                           VALID      12.1.0.1.0  00:02:17
Oracle XDK                                VALID      12.1.0.1.0  00:02:08
Oracle Text                               VALID      12.1.0.1.0  00:02:30
Oracle XML Database                       VALID      12.1.0.1.0  00:09:20
Oracle Database Java Packages            VALID      12.1.0.1.0  00:00:55
Oracle Multimedia                         VALID      12.1.0.1.0  00:07:03
Spatial                                   VALID      12.1.0.1.0  00:14:33
Oracle Application Express                VALID     4.2.0.00.27  01:04:29
Final Actions                                                    00:09:10
Total Upgrade Time: 02:50:08
PL/SQL procedure successfully completed.


As you can see all the components are in valid state except for Oracle Server which is in Upgraded state. Run the following script – this is just to make sure that upgrade gets successful. The upgrade may or may not had executed this script as part of it.

SQL> @catuppst.sql
Session altered.
Session altered.
Session altered.

TIMESTAMP
-------------------------------------------------------------------------------
COMP_TIMESTAMP POSTUP_BGN 2013-08-17 01:03:26
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP CATREQ_BGN 2013-08-17 01:03:31
PL/SQL procedure successfully completed.
catrequtlmg: b_StatEvt    = TRUE
catrequtlmg: b_SelProps    = FALSE
catrequtlmg: b_UpgradeMode = FALSE
Catrequtlmg: b_InUtlMig    = FALSE
PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

TIMESTAMP
-------------------------------------------------
COMP_TIMESTAMP CATREQ_END 2013-08-17 01:03:36

catuppst: Dropping library DBMS_DDL_INTERNAL_LIB
PL/SQL procedure successfully completed.

catuppst: Dropping view _CURRENT_EDITION_OBJ_MIG
PL/SQL procedure successfully completed.

catuppst: Dropping view _ACTUAL_EDITION_OBJ_MIG
PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

This script will migrate the Baseline data on a pre-11g database
to the 11g database.
...                                                                              ...
... Completed Moving the Baseline Data                  ...
...                                                                              ...
... If there are no Move BL Data messages ...
... above, then there are no renamed      ...
... baseline tables in the system.                 ...
...                                                                              ...
...                                                                              ...
... Completed the Dropping of the             ...
... Renamed Baseline Tables                         ...
...                                                                              ...
... If there are no Drop Table messages   ...
... above, then there are no renamed      ...
... baseline tables in the system.                 ...
...                                                                              ...
PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.
0 rows created.

Commit complete.

Table created.

2 rows created.

...

Table dropped.

Commit complete.

...

Commit complete.

PL/SQL procedure successfully completed.

...

PL/SQL procedure successfully completed.

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP POSTUP_END 2013-08-17 01:05:09

PL/SQL procedure successfully completed.

Session altered.

PL/SQL procedure successfully completed.

..

PL/SQL procedure successfully completed.

Generating apply and rollback scripts...

Check the following file for errors:

../cfgtoollogs/catbundle/catbundle_PSU_ORCL_GENERATE_2013Aug17_01_06_37.log

Apply script: ../product/12.1.0/dbhome_1/rdbms/admin/catbundle_PSU_ORCL_APPLY.sql
Rollback script: .../product/12.1.0/dbhome_1/rdbms/admin/catbundle_PSU_ORCL_ROLLBACK.sql

PL/SQL procedure successfully completed.

Executing script file...
SQL> alter session set "_ORACLE_SCRIPT" = true;
Session altered.
SQL> COLUMN spool_file NEW_VALUE spool_file NOPRINT
SQL> SELECT '/u01/app/oracle/cfgtoollogs/catbundle/' || 'catbundle_PSU_' || name || '_APPLY_' || TO_CHAR(SYSDATE, 'YYYYMonDD_hh24_mi_ss', 'NLS_DATE_LANGUAGE=''AMERICAN''') || '.log' AS spool_file FROM v$database;
SQL> SPOOL &spool_file
SQL> exec dbms_registry.set_session_namespace('SERVER')
PL/SQL procedure successfully completed.
SQL> ALTER SESSION SET current_schema = SYS;

Session altered.

SQL> PROMPT Updating registry...

Updating registry...

SQL> INSERT INTO registry$history
2    (action_time, action,
3     namespace, version, id,
4     bundle_series, comments)
5  VALUES
6    (SYSTIMESTAMP, 'APPLY',
7     SYS_CONTEXT('REGISTRY$CTX','NAMESPACE'),
8     '12.1.0.1',
9     0,
10     'PSU',
11     'Patchset 12.1.0.0.0');
1 row created.

SQL> COMMIT;
Commit complete.

SQL> SPOOL off
SQL> SET echo off

Check the following log file for errors:
..../cfgtoollogs/catbundle/catbundle_PSU_ORCL_APPLY_2013Aug17_01_06_44.log

Session altered.

Session altered.

Finally run the post upgrade script.

SQL> @/u01/app/oracle/cfgtoollogs/orcl/preupgrade/postupgrade_fixups.sql
Post Upgrade Fixup Script Generated on 2013-08-16 19:33:30  Version: 12.1.0.1 Build: 006
Beginning Post-Upgrade Fixups...

PL/SQL procedure successfully completed.

PL/SQL procedure successfully completed.

**********************************************************************
Check Tag:     OLD_TIME_ZONES_EXIST
Check Summary: Check for use of older timezone data file
Fix Summary:   Update the timezone using the DBMS_DST package after upgrade is complete.
**********************************************************************

Fixup Returned Information:
INFORMATION: --> Older Timezone in use
Database is using a time zone file older than version 18.
After the upgrade, it is recommended that DBMS_DST package
be used to upgrade the 12.1.0.1.0 database time zone version
to the latest version which comes with the new release.
Please refer to My Oracle Support note number 977512.1 for details.

**********************************************************************
PL/SQL procedure successfully completed.
**********************************************************************

[Post-Upgrade Recommendations] **********************************************************************
PL/SQL procedure successfully completed.
*****************************************
******** Fixed Object Statistics ********
*****************************************

Please create stats on fixed objects two weeks
after the upgrade using the command:
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

^^^ MANUAL ACTION SUGGESTED ^^^
PL/SQL procedure successfully completed.

**************************************************
************* Fixup Summary ************
1 fixup routine generated an INFORMATIONAL message that should be reviewed.
PL/SQL procedure successfully completed.

*************** Post Upgrade Fixup Script Complete ********************
PL/SQL procedure successfully completed.

Optional Steps

The below mentioned steps are optional but recommended. First is to gather statistics.

SQL> EXECUTE DBMS_STATS.gather_fixed_objects_stats;
PL/SQL procedure successfully completed.

Compile the objects which may have been invalidated during the upgrade. The script will compile all objects within database.

SQL> @utlrp.sql
TIMESTAMP
----------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN  2013-08-17 01:26:52

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.

DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#
PL/SQL procedure successfully completed.

TIMESTAMP
-------------------------------------------------------------------------------------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_END  2013-08-17 02:22:23
DOC> The following query reports the number of objects that have compiled
DOC> with errors.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#
OBJECTS WITH ERRORS
-------------------
0

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.

DOC>#
ERRORS DURING RECOMPILATION
---------------------------
0
Function created.

PL/SQL procedure successfully completed.
Function dropped.

...Database user "SYS", database schema "APEX_040200", user# "110" 02:23:59
...Compiled 0 out of 2998 objects considered, 0 failed compilation 02:24:05
...263 packages
...255 package bodies
...453 tables
...11 functions
...16 procedures
...3 sequences
...458 triggers
...1322 indexes
...207 views
...0 libraries
...6 types
...0 type bodies
...0 operators
...0 index types
...Begin key object existence check 02:24:05
...Completed key object existence check 02:24:06
...Setting DBMS Registry 02:24:06
...Setting DBMS Registry Complete 02:24:08
...Exiting validate 02:24:08
PL/SQL procedure successfully completed.


You can check if there are still invalid objects or not using the following.

SQL> @utluiobj.sql
.
Oracle Database 12.1 Post-Upgrade Invalid Objects Tool 08-17-2013 02:25:46
.

This tool lists post-upgrade invalid objects that were not invalid
prior to upgrade (it ignores pre-existing pre-upgrade invalid objects).
.
Owner                     Object Name                     Object Type
.

PL/SQL Procedure successfully completed.


Check the status of overall upgrade process again.

SQL> @utlu121s.sql
.
Oracle Database 12.1 Post-Upgrade Status Tool           08-17-2013 02:26:22
.
Component                               Current         Version  Elapsed Time
Name                                    Status          Number   HH:MM:SS
Oracle Server                           VALID      12.1.0.1.0  00:43:33
JServer JAVA Virtual Machine            VALID      12.1.0.1.0  00:08:34
Oracle Workspace Manager                VALID      12.1.0.1.0  00:03:07
OLAP Analytic Workspace                 VALID      12.1.0.1.0  00:01:08
Oracle OLAP API                         VALID      12.1.0.1.0  00:02:17
Oracle XDK                              VALID      12.1.0.1.0  00:02:08
Oracle Text                             VALID      12.1.0.1.0  00:02:30
Oracle XML Database                     VALID      12.1.0.1.0  00:09:20
Oracle Database Java Packages           VALID      12.1.0.1.0  00:00:55
Oracle Multimedia                       VALID      12.1.0.1.0  00:07:03
Spatial                                VALID      12.1.0.1.0  00:14:33
Oracle Application Express              VALID     4.2.0.00.27  01:04:29

Final Actions                                     00:09:10
Total Upgrade Time: 02:50:08

PL/SQL procedure successfully completed.


As you can see the Oracle Server is also in the valid state now.

Verifying the Upgrade

Log out and log in again and run the following commands to verify the upgrade process.

SQL> select name,open_mode from v$database;
NAME      OPEN_MODE
--------- --------------------
ORCL      READ WRITE

SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
PL/SQL Release 12.1.0.1.0 - Production
CORE     12.1.0.1.0             Production
TNS for Linux: Version 12.1.0.1.0 - Production
NLSRTL Version 12.1.0.1.0 - Production

Comments

  1. johnston@wapa.gov'Ken Johnston says

    I have multiple instances associated with my 11g ORACLE_HOME. I do not have a 12C multitenant license. Will I have to install a 12C ORACLE_HOME for each 11g instance to be upgraded as a non-cdb? Is there a way multiple non-cdb’s under one 12C ORACLE_HOME?

    Thank you,

    Ken

    • Natik Ameen says

      Hi Ken,

      You need a multitenant license only if you plan on converting your instances into CDB/PDB container databases.

      For your current single instance databases you can upgrade them directly to single instance non-CDB databases. They can all be created in the same 12c home.

      – Natik Ameen

    • Natik Ameen says

      Yes I sure can.

      1. Ensure that you have valid backups of the binaries and database.

      2. Also if you have a clone or snapshot at the OS/Storage before you upgrade that will greatly reduce your time to revert in-case of failure.

      3. Most important of all make sure that you test the restore methods (binary and DB) in a test environment before you do the actual production upgrade.

      4. You can also test the rollback of the patches in the test environment.

      I hope this helps.

      – Natik

  2. mudrama@gmail.com'Munna says

    We have currently five 11g oracle databases in 1 server.
    We are planning to upgrade all the databases to 12c.
    If we need to use multitenant architecture here, will it look like each database should be converted to cdb and its corresponding pdb (since we don’t have multitenant licence).

    • Natik Ameen says

      Hi Munna – Oracle encourages us to use the new CDB/PDB architecture.

      Oracle documentation states that there are no additional licensing requirements if you use a single PDB inside a CDB instance. However you should verify this with Oracle Support via a Metalink ticket. Also just so that you are aware, Oracle plans on making this architecture a default in future releases where the non-CDB architecture may not exist at all.

      I hope this helps. Let us know what feedback you get from Oracle Support.

Leave a Reply

Your email address will not be published.