Monday, September 21, 2015

How to Upgrade from 11g to 12c on AIX

--*****************************
-- Stage Installation Files
--*****************************

--Verify Disk Space Requirements for Oracle Software on IBM AIX on POWER Systems (64-Bit)
Installation Type  Disk Space for Software Files
Enterprise Edition 9.2 GB

--Transfer files from Local Windows to Remote AIX
Open up PSFTP:
Start > All Programs > PuTTY > PSFTP

psftp> open oracledbserver
login as:
oracleoracle@oracledbserver's password:
Remote working directory is /u01

psftp> cd /johhenning/Oracle12cStage
Remote directory is now /johhenning/Oracle12cStage

psftp> pwd
Remote directory is /johhenning/Oracle12cStage

psftp> ls
Listing directory /johhenning/Oracle12cStage
drwxr-xr-x    8 oracle   oinstall       4096 Nov  8 02:55 database
drwxr-xr-x    8 oracle   oinstall       4096 Nov  8 03:00 grid
-rw-r--r--    1 oracle   oinstall 2062053595 Apr 16 13:26 aix.ppc64_12102_database_1of2.zip
-rw-r--r--    1 oracle   oinstall 1035130518 Apr 16 13:28 aix.ppc64_12102_database_2of2.zip
-rw-r--r--    1 oracle   oinstall 1481484377 Apr 16 13:32 aix.ppc64_12102_grid_1of2.zip
-rw-r--r--    1 oracle   oinstall 2040828798 Apr 16 13:36 aix.ppc64_12102_grid_2of2.zip

psftp> lpwd
Current local directory is C:\Program Files\PuTTY
psftp>

psftp> lcd C:\Users\johhenning\Downloads
New local directory is C:\Users\johhenning\Downloads
psftp>

psftp> mput aix.ppc64_12102_database_1of2.zip aix.ppc64_12102_database_2of2.zip aix.ppc64_12102_grid_1of2.zip aix.ppc64_12102_grid_2of2.zip
$ unzip aix.ppc64_12102_database_1of2.zip
$ unzip aix.ppc64_12102_database_2of2.zip
$ unzip aix.ppc64_12102_grid_1of2.zip
$ unzip aix.ppc64_12102_grid_2of2.zip


--******************************************************
-- 1. Checking Server Hardware and Memory Configuration
--******************************************************

1. To determine the physical RAM size, enter the following command:
oracle@henndue14:rman:/u01 $ /usr/sbin/lsattr -E -l sys0 -a realmem
realmem 4194304 Amount of usable physical memory in Kbytes False

2. To determine the available RAM and swap space, enter the following command:

# /usr/sbin/lsps -a
Page Space      Physical Volume   Volume Group  Size     %Used Active Auto  Type Chksum
hd6             hdisk0            rootvg        6144MB     6     yes    yes   lv   0

RAM    Swap Space
Between 1 GB and 2 GB  1.5 times the size of RAM
Between 2 GB and 16 GB  Equal to the size of RAM
More than 16 GB   16 GB


--*****************************************
-- 2. Server Storage Minimum Requirements
--*****************************************

1.  Verify Disk Space Requirements for Oracle Software on IBM AIX on POWER Systems (64-Bit)
Installation Type  Disk Space for Software Files
Enterprise Edition 9.2 GB


2.  Add the following mountpoint to henndue14. This mountpoint contains all of the installation software.

Filesystem       GB blocks  Free   %Used   Iused     %Iused  Mounted on
nim:/sw/sw61/ucms     120.00     39.15   68%    38117     1%      /sw61/ucms


3.  Disk space requirements

Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/u01lv        20.00      6.43   68%    60891     4% /u01
/dev/u02lv        20.00     17.08   15%       21     1% /u02
/dev/u03lv        20.00     19.76    2%       21     1% /u03


4.  Sizing estimates for the oracle homes:

oracle@henndue14:rman:/u01 $ du -sg ./* | sort -rn | head -5
12 GB   ./OraHome_2
12 GB   ./OraHome_2_bk
10 GB   ./OraHome_12102

tar czf OraHome_2.tar.gz rdbms_11201/

5.  To determine the amount of space available in the /tmp directory, enter the following command (5 GB Recommended):

# df -m /tmp
Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd3        6144.00   6122.70    1%      148     1% /tmp


--***********************************
-- 3. Operating System Requirements
--***********************************

--*****************************************
-- 3.1 Identifying the Installed Packages
--*****************************************

--Check the maintenance level using the following command:

# oslevel -s

7100-03-04-1441
--To determine the supported kernel mode, enter a command similar to the following:
# getconf KERNEL_BITMODE
64
IBM AIX 7.1 Oerating System Filesets
bos.adt.base
bos.adt.lib
bos.adt.libm
bos.perf.libperfstat
bos.perf.perfstat
bos.perf.proctools
xlC.aix61.rte.11.1.0.4 or later
xlC.rte.11.1.0.4 or later

--Verify that the required packages are installed.
oracle@henndue14:rman:/u01 $ lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat bos.perf.perfstat bos.perf.proctools xlC.aix61.rte xlC.rte
  Fileset                      Level  State      Description
  ----------------------------------------------------------------------------
Path: /usr/lib/objrepos
  bos.adt.base              7.1.3.15  COMMITTED  Base Application Development
                                                 Toolkit
  bos.adt.lib               7.1.2.15  COMMITTED  Base Application Development
                                                 Libraries
  bos.adt.libm               7.1.3.0  COMMITTED  Base Application Development
                                                 Math Library
  bos.perf.libperfstat      7.1.3.15  COMMITTED  Performance Statistics Library
                                                 Interface
  bos.perf.perfstat         7.1.3.15  COMMITTED  Performance Statistics
                                                 Interface
  bos.perf.proctools        7.1.3.15  COMMITTED  Proc Filesystem Tools
  xlC.aix61.rte             12.1.0.1  COMMITTED  IBM XL C++ Runtime for AIX 6.1
                                                 and 7.1
  xlC.rte                   12.1.0.1  COMMITTED  IBM XL C++ Runtime for AIX

Path: /etc/objrepos
  bos.adt.base              7.1.3.15  COMMITTED  Base Application Development
                                                 Toolkit
  bos.perf.libperfstat      7.1.3.15  COMMITTED  Performance Statistics Library
                                                 Interface
  bos.perf.perfstat         7.1.3.15  COMMITTED  Performance Statistics
                                                 Interface


--*********************************
-- 3.1 Check if APAR is installed
--*********************************

--To determine if an APAR is installed, enter a command similar to the following:
# /usr/sbin/instfix -i -k "IV16716 IV20880 IV21128 IV28319"
--If an APAR is not installed, then download it from the following website and install it:
http://www-933.ibm.com/support/fixcentral/
# /usr/sbin/instfix -i -k "IV16737 IV21116 IV21116 IV21235 IV28925 IV34869 IV35057 IV37790 IV39136 IV41380 IV41415 IV45072 IV45073"

--**********************************************************
-- 3.2 Creating Required Operating System Groups and Users
--**********************************************************

oracle@henndue14:ratcq:/u01/products $ id oracle
uid=501(oracle) gid=267(oinstall) groups=1(staff),264(dba)

--****************************************************************
-- 3.3 Configure Shell Limits and System Configuration Parameters
--****************************************************************

Shell Limit (As Shown in smit)  Recommended Value
Soft File Descriptors           at least 1024 KB
Hard File Descriptors           at least 65536 KB
Soft Maxproc                    at least 2047 KB
Hard Maxproc                    at least 16384 KB
Soft STACK size                 at least 10240 KB
Hard STACK size                 at least 10240 KB; at most 32768 KB
Soft FILE size                  -1 (Unlimited)
Soft CPU time                   -1 (Unlimited)
Soft DATA segment               -1 (Unlimited)
Soft Real Memory size           -1 (Unlimited)
Processes (per user)            -1 (Unlimited)

To view the current value specified for these shell limits, and to change them if necessary:

1. Enter the following command:

# smit chuser

2. In the User NAME field, enter the user name of the Oracle software owner, for example oracle.

3. Scroll down the list and verify that the value shown for the soft limits listed in the previous table is -1.

   If necessary, edit the existing value.

4. When you have finished making changes, press F10 to exit.


--************************************************
-- 3.4 Configure System Configuration Parameters
--************************************************

Parameter Recommended Value
maxuprocs 2048
ncargs  128

To verify that the maximum number of processes allowed per user is set to 2048 or greater, use the following steps:

1. Enter the following command:

# smit chgsys

2. Verify that the value shown for Maximum number of PROCESSES allowed per user is greater than or equal to 2048.

   If necessary, edit the existing value.

3. When you have finished making changes, press F10 to exit.


To verify that long commands can be executed from shell, use the following steps:

1. Enter the following command:

# smit chgsys

2. Verify that the value shown for ARG/ENV list size in 4K byte blocks is greater than or equal to 128.

   If necessary, edit the existing value.

3. When you have finished making changes, press F10 to exit.



--***************************************************
-- 3.5 Checking Asynchronous Input Output Processes
--***************************************************

Confirm the aio_maxreqs value using the following procedure:
# ioo -o aio_maxreqs
aio_maxreqs = 65536 (Recommended Value)

--Current output on henndue14
# ioo -o aio_maxreqs
aio_maxreqs = 131072



****************************************************************************************************
-- 3.6 Enable the "iocp" option, To enable IOCP, set IOCP to Available using the following procedure:
--****************************************************************************************************

Log in as root and run the following command:
# smitty iocp

Select Change / Show Characteristics of I/O Completion Ports.
Change configured state at system restart from Defined to Available.
Run the lsdev command to confirm the IOCP status is set to Available:

$ lsdev | grep iocp
iocp0 Available I/O Completion Ports


--************************************
-- 4. Install the 12c Oracle Software
--************************************


--**************************************************
-- 4.1 Creating Required Directories
--**************************************************

--Oracle Home
$ mkdir -p /u01/products/rdbms_12102


--**************************************************
-- 4.2 Running the rootpre.sh Script
--**************************************************

Switch user to root:
$ sudo /sbin/ksh
password:
#

Complete one of the following steps, depending on the location of the installation files:
# cd /sw61/ucms/Oracle/Oracle12cStage/database/
# ./rootpre.sh

./rootpre.sh output will be logged in /tmp/rootpre.out_15-05-27.09:14:25
Checking if group services should be configured....
Nothing to configure.

Exit from the root account:
# exit


--**************************************************
-- 4.3 Configuring Oracle Software Owner Environment
--**************************************************

--Start CYGWIN
startxwin
xhost +
export DISPLAY=10.10.10.10:0.0 (DISPLAY = The IP Address of your local PC not the server you're running the scirpt.)


--**************************************************
-- 4.4 Database Software Only Installation :
--**************************************************

--Install 12.1.0.2 version of 12c database binaries using the runInstaller command from the UNIX command line. This will populate the Oracle 12c home directory.  The existing 11.2.0.3 home directory is preserved.
$  cd /Oracle12cStage/database
$  ./runInstaller

(At the end of the installation it will prompt to run root.sh script under the New ORACLE_HOME directory as root user. Run it as root to finish the installation.
# ./root.sh
Performing root user operation.

The following environment variables are set as:
      ORACLE_OWNER= oracle
      ORACLE_HOME=  /u01/products/rdbms_12102

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y
    Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y
    Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

** Note at this change there are no modifications to the existing (11G) database software

--***********************************
-- Pre Database Upgrade Tasks
--***********************************

--***********************************************************
-- Using the Pre-Upgrade Information Tool (preupgrd.sql)
--***********************************************************

To run the Pre-Upgrade Information Tool on the source database:
1. Copy preupgrd.sql and utluppkg.sql from the rdbms/admin directory of the new Oracle home where you installed Oracle Database 12c to a directory that is accessible when you connect to your source database, which is the database to be upgraded. Preferably, this should be a temp directory.
   $ mkdir -p /u01/OraHome1_11203/rdbms/temp
   $ cd /u01/OraHome1_11203/rdbms/temp
   $ cp /u01/products/rdbms_12102/rdbms/admin/preupgrd.sql  .
   $ cp /u01/products/rdbms_12102/rdbms/admin/utluppkg.sql .

2. Log in to the system as the owner of the environment of the database being upgraded.


3. Start SQL*Plus and connect to the database to be upgraded using an account with DBA privileges:

   SQL> CONNECT / AS SYSDBA

4. (Recommended.) Run the Pre-Upgrade Information Tool (preupgrd.sql) for the following scenarios:

   a. Before you upgrade a non-CDB in the source Oracle Home.
   SQL> @$ORACLE_HOME/rdbms/temp/preupgrd.sql

5. View and read through the resulting generated fixup scripts and log file, which are located in $ORACLE_BASE/cfgtoollogs/db_unique_name/preupgrade if ORACLE_BASE is defined, or $ORACLE_HOME/cfgtoollogs/db_unique_name/preupgrade if ORACLE_BASE is not defined.

6. Review output and determine course of action before proceeding upgrading the database.

7. Gather Dictionary Statistics 24 hrs before running the DBUA as recommended by preupgrade script:
  
   $ sqlplus "/as sysdba"
   sql> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS


--*********************************************
-- Upgrade the Database
--*********************************************

1. Take full RMAN backup and verify backup is successful. Take full system export of the RMAN database.
   For RMAN backup, use a script scheduled in the crontab for level0 backup.
   For Export use the below commands,
  
   $ export ORACLE_SID=rman
   $ . oraenv

   $ expdp system/xxxxx full=y directory=<DATA_PUMP_DIR> dumpfile=exp_rman_full_<date>.dmp logfile= exp_rman_full_<date>.log

2. Run the Pre-Upgrade Information Tool (preupgrd.sql) for the following scenarios:

   Before you upgrade a non-CDB in the source Oracle Home.
     
   $sqlplus ‘/as sysdba’
   SQL> @$ORACLE_HOME/rdbms/temp/preupgrd.sql


3. View and read through the resulting generated fixup scripts and log file, which are located in $ORACLE_BASE/cfgtoollogs/db_unique_name/preupgrade if ORACLE_BASE is defined, or $ORACLE_HOME/cfgtoollogs/db_unique_name/preupgrade if ORACLE_BASE is not defined.


4. After you have reviewed the scripts, Oracle recommends that you execute preupgrade_fixups.sql manually on the source database. The preupgrade_fixups.sql script will attempt to resolve issues reported by the preupgrade process.


5. Fix the flagged issues that require you to complete manual procedures. See "Pre-Upgrade Information Tool Warnings and Recommendations for Oracle Database" for more details about actions to take.


6. Run the Pre-Upgrade Information Tool as many times as needed for you to work through and resolve warnings.


7. Manually Remove the DB Control with emremove.sql script located in 12c ORACLE_HOME/rdbms/admin directory as recommended by preupgrade script.

   $ emctl stop dbconsole
   $ cd /u01/OraHome1_11203/rdbms/temp
   $ cp /u01/products/rdbms_12102/rdbms/admin/emremove.sql  .
   $ sqlplus ‘/as sysdba’

   SQL>SET ECHO ON;
   SQL>SET SERVEROUTPUT ON;
   SQL>@emremove.sql
   SQL>exit

   After emremove.sql completes, you must manually remove ORACLE_HOME/HOSTNAME_SID and ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_HOSTNAME_SID directories from your file system.
   $ rm -rf /u01/OraHome1_11203/henndue14_rman
   $ rm -rf /u01/OraHome1_11203/oc4j/j2ee/OC4J_DBConsole_henndue14_rman


8. Verify and if not being used than manually remove APEX.

$ sqlplus '/as sysdba'
  
Sql> select workspace, view_date, seconds_ago from apex_workspace_activity_log;
No rows returned
  
Sql>select workspace, workspace_id from apex_workspaces;
No rows with exponential values.
  
Sql>@$ORACLE_HOME/apex/apxremov.sql
APEX is removed with the above script.

Look for below users if any exists, remove them manually:
Sql> slect username from dba_users where username like '%APEX%';
Sql> slect username from dba_users where username like '%FLOWS%';

Now look for the below objects in the database and remove them manually if exists.
Sql> select owner, OBJECT_NAME, OBJECT_TYPE, status from dba_objects where object_name='HTMLDB_SYSTEM';
Sql> select owner, OBJECT_NAME, OBJECT_TYPE, status from dba_objects where object_name like 'WWV_%';


9. As recommended by preupgrade script, remove OLAP AMD component which is depreciated in 12c from the database.
   $ cd $ORACLE_HOME/olap/admin
   $ sqlplus '/as sysdba'
   Sql> @catnoamd.sql


10. Check for INVALID database components and objects in the Source database

Ensure that there are NO INVALID database components/objects in the source database prior to starting the upgrade
You can execute the following query to check the invalid database components/objects in the source database:
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;

select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type from dba_objects where status='INVALID' order by owner,object_type;
select owner,object_type,count(*) from dba_objects where status='INVALID' group by owner,object_type order by owner,object_type ;
If you find invalid objects and/or database components then try to VALIDATE the invalid objects and/or database components by executing the following steps:
Run $ORACLE_HOME/rdbms/admin/utlrp.sql to validate the invalid objects in the database. You can execute the utlrp.sql scripts multiple times to validate the invalid objects.

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus "/ as sysdba"
SQL> @utlrp.sql


11. Verify That Materialized View Refreshes Have Completed Before Upgrading
    To determine if there are any materialized view refreshes still in progress:

    Run the following SQL query:

    SQL> SELECT o.name FROM sys.obj$ o, sys.user$ u, sys.sum$ s WHERE o.type# = 42 AND bitand(s.mflags, 8) =8;

12. Ensure That No Files Need Media Recovery Before Upgrading
    To get a list of files that require media recovery:
    Run the following statement:
    SQL> SELECT * FROM v$recover_file;

13. Ensure That No Files Are in Backup Mode Before Upgrading

    To get a list of files in backup mode:
    Run the following statement:
    SQL> SELECT * FROM v$backup WHERE status != 'NOT ACTIVE';

14. Resolve Outstanding Distributed Transactions Before Upgrading

    To resolve outstanding distributed transactions:
    1. Run the following statement:
    SQL> SELECT * FROM dba_2pc_pending;
    2. If the query in the previous step returns any rows, then run the following statements:
    SQL> SELECT local_tran_id FROM dba_2pc_pending;
    SQL> EXECUTE dbms_transaction.purge_lost_db_entry('');
    SQL> COMMIT;


15. Purge the Database Recycle Bin Before Upgrading

    To empty the database recycle bin, run the following command:
    SQL> PURGE DBA_RECYCLEBIN

16. Purge Audit records or preprocess them to decrease the amount of downtime during the upgrade


    SQL> truncate table sys.aud$;
    SQL> truncate table sys.fga_log$;

17. Perserve registered RMAN Datbases


Query the RMAN catalog to determine all registered databases.
SQL>
set pagesize 500
set linesize 500
column  RESETLOGS_CHANGE# format a19
select * from rman.rc_database
order by NAME;
SQL>

Or at the RMAN prompt enter the following command.
$ rman catalog rman/xxxxx
RMAN> list incarnation;


--************************************************
-- 6.1 Using DBUA to Upgrade the Database on UNIX
--************************************************

Run the upgrade assistant (DBUA) to upgrade the database to 12c.  At this point the database will be pointing to the new Oracle Home.

--************************************************
-- 7 Post-Upgrade Tasks for Oracle Database
--************************************************

All the post upgrade steps are performed by DBUA. In case DBUA displays the final component status in the Upgrade Results page.
Please check the final component status on the Upgrade Result page. Invalid components are marked with an X and the option to recompile is provided.

Run utlrp.sql to recompile the invalid objects as follows:

sql> connect / as sysdba

sql> @?/rdbms/admin/utlrp.sql

--*************************************************************************************************
-- 7.1 Set oratab and Scripts to Point to the New Oracle Location After Upgrading Oracle Database
--*************************************************************************************************

After you upgrade Oracle Database to the new release, you must ensure that your oratab file and any client scripts that set the value of ORACLE_HOME point to the new Oracle home that is created for the new Oracle Database 12c release. Although DBUA automatically points oratab to the new Oracle home, client scripts must be checked no matter which method you use to upgrade.

--************************************************************************
-- 7.2 Upgrade the Recovery Catalog After Upgrading Oracle Database
--************************************************************************

If you use a version of the recovery catalog schema that is older than that required by the RMAN client, then you must upgrade it. For complete information about upgrading the recovery catalog and the UPGRADE CATALOG command, see Oracle Database Backup and Recovery User's Guide.
1. Use SQL*Plus to connect to the recovery catalog database as the SYS user with SYSDBA privilege.

2. Run the dbmsrmansys.sql script to grant additional privileges that are required for the RECOVERY_CATALOG_OWNER role.

   SQL> @$ORACLE_HOME/rdbms/admin/dbmsrmansys.sql

3. Connect RMAN to the base recovery catalog, upgrade the base recovery catalog, and then exit RMAN.

   $ rman CATALOG
my_catalog_owner@catdb
   recovery catalog database Password:
   RMAN> UPGRADE CATALOG;
   RMAN> UPGRADE CATALOG;
   RMAN> EXIT;


--*******************************************
-- 7.3 Run the postupgrade_fixups.sql Script
--*******************************************

Although DBUA runs the postupgrade_fixups.sql script as part of completing the upgrade process, you can run it any time after upgrading. The postupgrade_fixups.sql script generates three categories of information for your upgraded database: general warnings, errors, and informational recommendations.

Run this script any time after completing an upgrade with DBUA or manually. If Oracle_Base is defined, then the generated scripts and log files are created in Oracle_Base/cfgtoollogs/ of the original database from which you ran the upgrade. If Oracle_Base is not defined, then the generated scripts and log files are created in ORACLE_HOME/cfgtoollogs/ of the database from which you ran the upgrade.

Set the system to spool results to a log file so you can read the output. Do not, however, spool to the admin directory. Run the script from the location of the database from which you ran the upgrade (not the new upgraded location):

SQL> SPOOL postupgrade.log

Turn off the spooling of script results to the log file.

SQL> SPOOL OFF

--******************************************************
-- 7.4 Gather Fixed Objects Statistics with DBMS_STATS
--******************************************************

A few days after upgrading Oracle Database, a best practice is to gather fixed objects statistics with the DBMS_STATS.GATHER_FIXED_OBJECTS_STATS PL/SQL procedure. This can have a positive impact on overall database performance. DBMS_STATS.GATHER_FIXED_OBJECTS_STATS also displays a recommendation to remove all hidden or underscore parameters and events from init.ora/spfile.

Because of the transient nature of the x$ tables, it is important that you gather fixed objects statistics when there is a representative workload on the system. This may not always be feasible on large systems due to additional resources needed to gather the statistics. If you cannot do this during peak load, then you should do it after the system has warmed up and the key types of fixed object tables have been populated.

To gather statistics for fixed objects, run the following PL/SQL procedure:

SQL> execute dbms_stats.gather_fixed_objects_stats;

--****************************************************************
-- 7.5 Take a full system export and backup of the RMAN database 
--****************************************************************

Make sure you perform a full backup of the production database.


--*******************************************************
-- 7.6 Configuring tnsnames.ora and Listener Parameters 
--*******************************************************

After performing a manual upgrade, you must adjust local_listener and remote_listener parameter references if they must be resolved in tnsnames.ora. DBUA handles changes to network naming and listeners during automatic upgrades, but during a manual upgrade, tnsnames.ora is not changed, nor are the listeners.

--*********************
-- 7.7 Smoke Test 
--*********************

Perform smoke test

--******************************
-- 7.8 11G Compatibility Mode 
--******************************

Set the COMPATIBLE initialization parameter to 12.1.0.0, enter the following statement:
SQL> ALTER SYSTEM SET COMPATIBLE = '12.1.0.0' SCOPE=SPFILE;
Shut down and restart the instance.


--**************************************************
-- Useful links and metalink articles.
--**************************************************
--Database Quick Installation Guide
http://docs.oracle.com/database/121/AXDQI/toc.htm
--Preparing to Upgrade Oracle Databasehttp://docs.oracle.com/database/121/UPGRD/preup.htm#BABHHIBG
--Using Flashback Database and Restore Pointshttp://docs.oracle.com/cd/E11882_01/backup.112/e10642/flashdb.htm
--Database Upgrade Guidehttp://docs.oracle.com/database/121/UPGRD/intro.htm#i1008722
--How to Upgrade to Oracle Grid Infrastructure 12c Release 1http://docs.oracle.com/database/121/CWLIN/procstop.htm#CEGJHHFJ
--Upgrading from 11gR2 (11.2.0.3) to 12c (12.1.0.1) Grid Infrastructure http://asanga-pradeep.blogspot.co.uk/2013/07/upgrading-from-11gr2-11203-to-12c-12101.html
--Oracle Support Document 1516557.1 (Complete Checklist for Upgrading to Oracle Database 12c Release 1 using DBUA)https://support.oracle.com/epmos/faces/DocumentDisplay?id=1516557.1
--Database Upgrade From 11202 to 12101 Using DBUA http://www.askmlabs.com/2014/02/database-upgrade-from-11202-to-12101.html
--Rac 3node upgrade from 11202 to 12101 http://www.askmlabs.com/2014/03/rac-3node-upgrade-from-11202-to-12101.html
--Database Upgrade From 11204 to 12101 - Manual Stepshttp://www.askmlabs.com/2014/03/database-upgrade-from-11204-to-12101.html