How to install Oracle Database 12.1.0.2 and create a 12.1.0.2 database in silent mode

Today 22 July 2014 Oracle Corp. has released patchset 12.1.0.2 for Oracle Database 12c release 1. According to Mike Dietrich:


Three things important to mention:

  • It is a full release – no need to get Oracle Database 12.1.0.1
  • Even though it is a patch set it will be available on OTN and eDelivery – and Oracle Database 12.1.0.1 will be removed instantly
  • For now it is an Enterprise Edition install only – SE and SE One may follow later.
    Please see MOS Note:1905806.1 for further details.
  • Installation of Oracle Database 12.1.0.2

    For this installation I have used Oracle Linux 6.4 64-bit machine where Oracle 12.1.0.1 is already installed
    (this is a VirtualBox machine still running 4.3.6). This means I did not had to install needed RPM, configure the kernel and create oracle account: this is already done (see Oracle 12.1.0.1 installation in silent mode for more details).

    The Linux account I have used is oracle:

    $ id
    uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
    

    First download from OTN and upload to your Linux machine the 2 zip files:

    $ ls -al linuxamd64_12102_database_*
    -rw-r--r-- 1 oracle oinstall 1673544724 Jul 22 20:48 linuxamd64_12102_database_1of2.zip
    -rw-r--r-- 1 oracle oinstall 1014530602 Jul 22 20:51 linuxamd64_12102_database_2of2.zip
    

    Unzip the 2 files:

    $ unzip linuxamd64_12102_database_1of2.zip
    $ unzip linuxamd64_12102_database_2of2.zip
    

    Create the new Oracle Home directory:

    $ mkdir -p /u01/app/oracle/product/12.1.0.2/db_1
    

    Create the silent script installation for Oracle Universal Installer (since Oracle 12.1.0.1 is already installed I didn't need to create the Oracle inventory):

    $ cat di2.ksh
    cd /stage/database
    export DISTRIB=`pwd`
    ./runInstaller -silent \
       -responseFile $DISTRIB/response/db_install.rsp      \
       oracle.install.option=INSTALL_DB_SWONLY             \
       UNIX_GROUP_NAME=oinstall                            \
       INVENTORY_LOCATION=/u01/app/oracle/oraInventory     \
       SELECTED_LANGUAGES=en                               \
       ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1   \
       ORACLE_BASE=/u01/app/oracle                         \
       oracle.install.db.InstallEdition=EE                 \
       oracle.install.db.isCustomInstall=false             \
       oracle.install.db.DBA_GROUP=dba                     \
       oracle.install.db.OPER_GROUP=dba                    \
       oracle.install.db.BACKUPDBA_GROUP=dba               \
       oracle.install.db.DGDBA_GROUP=dba                   \
       oracle.install.db.KMDBA_GROUP=dba                   \
       SECURITY_UPDATES_VIA_MYORACLESUPPORT=false          \
       DECLINE_SECURITY_UPDATES=true
    

    Launch the installation script and wait for the message "The installation of Oracle Database 12c was successful":

    $./di2.ksh
    Starting Oracle Universal Installer...
    
    Checking Temp space: must be greater than 500 MB.   Actual 14398 MB    Passed
    Checking swap space: must be greater than 150 MB.   Actual 3963 MB    Passed
    Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-07-22_09-30-00PM. 
    Please wait ...$ You can find the log of this install session at:
     /u01/app/oracle/oraInventory/logs/installActions2014-07-22_09-30-00PM.log
    $ The installation of Oracle Database 12c was successful.
    Please check '/u01/app/oracle/oraInventory/logs/silentInstall2014-07-22_09-30-00PM.log' for more details.
    
    As a root user, execute the following script(s):
            1. /u01/app/oracle/product/12.1.0.2/db_1/root.sh
    
    
    
    Successfully Setup Software.
    

    Connect as root to run root.sh:

    #  /u01/app/oracle/product/12.1.0.2/db_1/root.sh
    Check /u01/app/oracle/product/12.1.0.2/db_1/install/root_ol6twcn1.localdomain_2014-07-22_21-37-14.log for the output of root script
    # cat /u01/app/oracle/product/12.1.0.2/db_1/install/root_ol6twcn1.localdomain_2014-07-22_21-37-14.log
    Performing root user operation.
    
    The following environment variables are set as:
        ORACLE_OWNER= oracle
        ORACLE_HOME=  /u01/app/oracle/product/12.1.0.2/db_1
       Copying dbhome to /usr/local/bin ...
       Copying oraenv to /usr/local/bin ...
       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.
    #
    

    Switch to oracle account and check SQL*Plus version:

    $ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
    $ PATH=$ORACLE_HOME/bin:$PATH
    $ sqlplus -v
    
    SQL*Plus: Release 12.1.0.2.0 Production
    

    Create a 12.1.0.2 container database

    Create the directories for database files and Fast Recovery Area on local file systems (connect as root and give right privileges to Oracle software owner account):

    # mkdir /u01/oradata
    # chown oracle:dba /u01/oradata
    # mkdir -p /u02/fra
    # chown oracle:dba /u02/fra
    

    Create the script for DBCA to create a container database with 2 pluggable databases:

    $ cat crdb2.ksh
    set -x
    dbca \
     -silent \
     -createDatabase \
     -templateName General_Purpose.dbc   \
     -gdbName cdb2 \
     -createAsContainerDatabase true \
     -numberOfPdbs 2 \
     -pdbName pdb \
     -pdbadminUsername pdba \
     -pdbadminPassword oracle12c \
     -SysPassword oracle12c \
     -SystemPassword oracle12c \
     -emConfiguration NONE \
     -datafileDestination /u01/oradata\
     -asmSysPassword oracle12c \
     -characterSet AL32UTF8 \
     -totalMemory 1024 \
     -recoveryAreaDestination /u02/fra
    

    Launch the script (note this takes more time on my configuration than to install Oracle Database: be patient):

    $ ./crdb2.ksh
    ++ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName cdb2 -createAsContainerDatabase true -numberOfPdbs 2 -pdbName pdb -pdbadminUsername pdba -pdbadminPassword oracle12c -SysPassword oracle12c -SystemPassword oracle12c -emConfiguration NONE -datafileDestination /u01/oradata -asmSysPassword oracle12c -characterSet AL32UTF8 -totalMemory 1024 -recoveryAreaDestination /u02/fra
    Copying database files
    1% complete
    2% complete
    8% complete
    13% complete
    19% complete
    27% complete
    Creating and starting Oracle instance
    29% complete
    32% complete
    33% complete
    34% complete
    38% complete
    42% complete
    43% complete
    45% complete
    Completing Database Creation
    48% complete
    51% complete
    53% complete
    62% complete
    70% complete
    72% complete
    Creating Pluggable Databases
    78% complete
    83% complete
    100% complete
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb2/cdb2.log" for further details.
    

    Check DBCA log file:

    cat "/u01/app/oracle/cfgtoollogs/dbca/cdb2/cdb2.log"
    
    Unique database identifier check passed.
    
    / has enough space. Required space is 8430 MB , available space is 9068 MB.
    File Validations Successful.
    Copying database files
    DBCA_PROGRESS : 1%
    DBCA_PROGRESS : 2%
    DBCA_PROGRESS : 8%
    DBCA_PROGRESS : 13%
    DBCA_PROGRESS : 19%
    DBCA_PROGRESS : 27%
    Creating and starting Oracle instance
    DBCA_PROGRESS : 29%
    DBCA_PROGRESS : 32%
    DBCA_PROGRESS : 33%
    DBCA_PROGRESS : 34%
    DBCA_PROGRESS : 38%
    DBCA_PROGRESS : 42%
    DBCA_PROGRESS : 43%
    DBCA_PROGRESS : 45%
    Completing Database Creation
    DBCA_PROGRESS : 48%
    DBCA_PROGRESS : 51%
    DBCA_PROGRESS : 53%
    DBCA_PROGRESS : 62%
    DBCA_PROGRESS : 70%
    DBCA_PROGRESS : 72%
    Creating Pluggable Databases
    DBCA_PROGRESS : 78%
    DBCA_PROGRESS : 83%
    DBCA_PROGRESS : 100%
    Database creation complete. For details check the logfiles at:
     /u01/app/oracle/cfgtoollogs/dbca/cdb2.
    Database Information:
    Global Database Name:cdb2
    System Identifier(SID):cdb2
    

    Check /etc/oratab:

    $ grep cdb2 /etc/oratab
    cdb2:/u01/app/oracle/product/12.1.0.2/db_1:N
    

    Check that you can connect to new database and check for In Memory database parameters and options:

    $ sqlplus / as sysdba @c122
    
    SQL*Plus: Release 12.1.0.2.0 Production on Tue Jul 22 22:09:38 2014
    
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    
    SYS@cdb2>set linesize 132
    SYS@cdb2>column name format a60
    SYS@cdb2>column parameter format a50
    SYS@cdb2>column value format a10
    SYS@cdb2>--
    SYS@cdb2>select * from v$version;
    
    BANNER                                                                               CON_ID
    -------------------------------------------------------------------------------- ----------
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production              0
    PL/SQL Release 12.1.0.2.0 - Production                                                    0
    CORE    12.1.0.2.0      Production                                                                0
    TNS for Linux: Version 12.1.0.2.0 - Production                                            0
    NLSRTL Version 12.1.0.2.0 - Production                                                    0
    
    SYS@cdb2>show parameter inmemory
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    inmemory_clause_default              string
    inmemory_force                       string      DEFAULT
    inmemory_max_populate_servers        integer     0
    inmemory_query                       string      ENABLE
    inmemory_size                        big integer 0
    inmemory_trickle_repopulate_servers_ integer     1
    percent
    optimizer_inmemory_aware             boolean     TRUE
    SYS@cdb2>select * from v$option where parameter like '%Mem%';
    
    PARAMETER                                          VALUE          CON_ID
    -------------------------------------------------- ---------- ----------
    In-Memory Column Store                             TRUE                0
    In-Memory Aggregation                              TRUE                0
    
    SYS@cdb2>exit
    Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    

    So far so good.

    Follow

    Get every new post delivered to your Inbox.