Search

Top 60 Oracle Blogs

Recent comments

Oakies Blog Aggregator

OSWatcher, Tracefile Analyzer, and Oracle Restart 12.2

You are about to read the second part of this mini-series on TFA and Oracle 12.2. In the previous article I wrote about TFA and Oracle 12.2 single instance. In this short article I am going to have a look at TFA in a 12.2 Oracle Restart environment before rounding it up with an investigation into a full-blown RAC installation in part 3.

Summarising the first part I can only say that I am very happy that we now get TFA as part of the standard installation. Running it in daemon mode provides some great insights, and even if you did not upgrade the installation to “MOS-TFA”, you have a very fine tool for Oracle troubleshooting at your disposal.

Summary of the environment

My environment is largely the same as last time, except the machine name changed to server4 and I have additional storage for use with ASM.

  • It’s still Oracle Linux 7.4 with UEK4
  • Oracle 12.2.0.1.0 Grid Infrastructure was installed first
  • Followed by an installation of the Oracle 12.2.0.1.0 RDBMS EE software
  • After having created a database in ASM I applied the January 2018 GI RU
  • Finally I upgraded TFA to the current version (as downloaded from My Oracle Support DOC ID 1513912.1)

Not all of these steps are relevant for this article though.

Now where would you find TFA?

The question I had when creating this environment was essentially this: where would I find TFA? Would it be part of the Grid Home, or rather the RDBMS installation?

After having installed the binaries for Grid Infrastructure, I didn’t find a reference to roottfa.sh in the Grid Home’s root.sh script.

[oracle@server4 ~]$ cat /u01/app/oracle/product/12.2.0.1/grid/root.sh
#!/bin/sh
unset WAS_ROOTMACRO_CALL_MADE
. /u01/app/oracle/product/12.2.0.1/grid/install/utl/rootmacro.sh "$@"
. /u01/app/oracle/product/12.2.0.1/grid/install/utl/rootinstall.sh

#
# Root Actions related to network
#
/u01/app/oracle/product/12.2.0.1/grid/network/install/sqlnet/setowner.sh 

#
# Invoke standalone rootadd_rdbms.sh
#
/u01/app/oracle/product/12.2.0.1/grid/rdbms/install/rootadd_rdbms.sh

/u01/app/oracle/product/12.2.0.1/grid/rdbms/install/rootadd_filemap.sh 
/u01/app/oracle/product/12.2.0.1/grid/crs/config/rootconfig.sh $@ 
EXITCODE=$? 
if [ $EXITCODE -ne 0 ]; then
	exit $EXITCODE
fi

[oracle@server4 ~]$ 

I checked whether TFA has been configured in a different place, but there wasn’t any TFA-related process running nor was there a systemd unit file with *tfa* in its name. So it looks like you don’t get the option to install TFA automatically as part of the Grid Infrastructure installation.

Not finding TFA configured to run out of Grid Infrastructure surprised me, especially since Oracle states in the Autonomous Health Framework documentation chapter 4.2.2 that TFA is automatically configured as part of the GI configuration, upon invoking root.sh or rootupgrade.sh. According to my testing, this is true for RAC, but not Oracle Restart.

Which kind-of makes sense if you consider that most users will install the database software anyway in an Oracle Restart setup.

It doesn’t really matter, read on ;)

Installing the RDBMS software

If TFA isn’t configured automatically with Grid Infrastructure in an Oracle Restart configuration it should come as no surprise that TFA is once more installed and configured from the RDBMS home. Just as with the single instance installation I wrote about previously, you find a reference to roottfa.sh in the RDBMS home’s root.sh:

[oracle@server4 tfa]$ cat /u01/app/oracle/product/12.2.0.1/dbhome_1/root.sh 
#!/bin/sh
unset WAS_ROOTMACRO_CALL_MADE
. /u01/app/oracle/product/12.2.0.1/dbhome_1/install/utl/rootmacro.sh "$@"
. /u01/app/oracle/product/12.2.0.1/dbhome_1/install/utl/rootinstall.sh
/u01/app/oracle/product/12.2.0.1/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh
/u01/app/oracle/product/12.2.0.1/dbhome_1/install/root_schagent.sh

#
# Root Actions related to network
#
/u01/app/oracle/product/12.2.0.1/dbhome_1/network/install/sqlnet/setowner.sh 

#
# Invoke standalone rootadd_rdbms.sh
#
/u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/install/rootadd_rdbms.sh

/u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/install/rootadd_filemap.sh 
[oracle@server4 tfa]$ 

The procedure appears to be almost exactly the same as with single instance Oracle. I have again opted to use TFA in daemon mode, just as I did before in my post about Oracle single instance.

TFA thankfully discovers and adds both RDBMS as well as Grid Infrastructure directories (and quite a few Linux related directories, too!). You can see for yourself when running tfactl print directories.

As the final step you might want to consider upgrading TFA to the MOS version. That’s it-happy troubleshooting!

Post GI / RDBMS Installation Configuration Steps

Introduction

This is the third article in a series of blog posts on building a test environment to closely match a Production environment so we could then upgrade the test environment from Oracle Database 12.1 to Oracle Database 12.2. In the first post, I covered performing a silent installation of the grid infrastructure software. In the second post, I followed that by performing a similar silent installation of the RDBMS software. In this post, I’ll be covering the rest of the configuration work for this environment.

Listener Configuration

The first stage in configuring this environment was to get the listener configured and running. I copied the listener.ora from the GI home on Production to the test environment and updated host names appropriately, and also copied the sqlnet.ora and tnsnames.ora from the database home on Production to the test environment and updated those files appropriately as well. I started the listener to ensure it was working as expected:

[oracle@devdb01 ~]$ lsnrctl

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 06-FEB-2018 11:19:31

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> start
Starting /u01/app/product/12.1.0/grid/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.1.0.1.0 - Production
System parameter file is /u01/app/product/12.1.0/grid/network/admin/listener.ora
Log messages written to /u01/app/diag/tnslsnr/devdb01/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=devdb01.acme.com.au)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.1.0 - Production
Start Date                06-FEB-2018 11:19:37
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/product/12.1.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/diag/tnslsnr/devdb01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=devdb01.acme.com.au)(PORT=1521)))
The listener supports no services
The command completed successfully

Parameter Files for ASM and the Database

The next step is to copy the relevant parameter files from the Production environment – one for ASM and one for the Production database. The database had an SPFILE on disk, but ASM did not, so to be sure I copied the environment as it currently stood, I created the ASM parameter file from memory and copied it to the test environment:

[oracle@prddb01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 12.1.0.1.0 Production on Tue Feb 6 11:52:41 2018

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 Automatic Storage Management option

SQL> create pfile='/tmp/init+ASM.ora' from memory;

File created.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Automatic Storage Management option

[oracle@prddb01 ~]$ scp /tmp/init+ASM.ora xxx.xxx.x.xx:/u01/app/product/12.1.0/grid/dbs
oracle@xxx.xxx.x.xx's password:
initASM.ora                                                                          100% 6429     6.3KB/s   00:00

Of course, creating a PFILE this way means that all the underscore parameters etc. are included, so I needed to remove all of those and the setting for ASM_DISKGROUP for now, as I haven’t yet created any diskgroups on the test environment. I also had to create the relevant directories under diag.

For the Production database, I created a pfile from the SPFILE so I could edit it as needed, and copied that to test as well:

[oracle@prddb01 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Tue Feb 6 11:37:08 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Release 12.1.0.1.0 - 64bit Production
With the Automatic Storage Management option

SQL> show parameter pfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/product/12.1.0/oracle
                                                 /dbs/spfileORCL.ora
SQL> create pfile='/tmp/initORCL.ora' from spfile;

File created.

SQL> exit

[oracle@prddb01 ~]$ scp /tmp/initORCL.ora xxx.xxx.x.xx:/u01/app/product/12.1.0/oracle/dbs
oracle@xxx.xxx.x.xx's password:
initORCL.ora                                                                         100% 1300     1.3KB/s   00:00

Configuring ASM

In theory, you might think that we should now be able to start ASM with the modified PFILE. Unfortunately, doing so causes an error:

[oracle@devdb01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 12.1.0.1.0 Production on Tue Feb 6 12:04:39 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup pfile='$ORACLE_HOME/dbs/init+ASM.ora'
ORA-29701: unable to connect to Cluster Synchronization Service
ORA-01078: failure in processing system parameters

The problem is that the CRS resources have not yet been started:

[oracle@devdb01 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
               OFFLINE OFFLINE      devdb01           STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        OFFLINE OFFLINE                               STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       devdb01           STABLE
--------------------------------------------------------------------------------
[oracle@devdb01 ~]$ crsctl start resource ora.cssd
CRS-2672: Attempting to start 'ora.cssd' on 'devdb01'
CRS-2672: Attempting to start 'ora.diskmon' on 'devdb01'
CRS-2676: Start of 'ora.diskmon' on 'devdb01' succeeded
CRS-2676: Start of 'ora.cssd' on 'devdb01' succeeded
[oracle@devdb01 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
               OFFLINE OFFLINE      devdb01           STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       devdb01           STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       devdb01           STABLE
--------------------------------------------------------------------------------

Now let’s try starting ASM again:

[oracle@devdb01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 12.1.0.1.0 Production on Tue Feb 6 12:57:19 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup pfile='$ORACLE_HOME/dbs/init+ASM.ora'
ASM instance started

Total System Global Area 1135747072 bytes
Fixed Size                  2297344 bytes
Variable Size            1108283904 bytes
ASM Cache                  25165824 bytes
ORA-15110: no diskgroups mounted


SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Automatic Storage Management option

Of course, there are no diskgroups so the ORA-15110 error is expected. In this environment, the customer had set up four disks using multipathing, so I could use the devices mpath[b-e] to create ASM disks:

[root@devdb01 ~]# ls /dev/mapper
control  mpathb  mpathc  mpathd  mpathe  vg_devdb01-lv_root  vg_devdb01-lv_swap
[root@devdb01 ~]# /etc/init.d/oracleasm createdisk DISK1 /dev/mapper/mpathb
Marking disk "DISK1" as an ASM disk:                       [  OK  ]
[root@devdb01 ~]# /etc/init.d/oracleasm createdisk DISK2 /dev/mapper/mpathc
Marking disk "DISK2" as an ASM disk:                       [  OK  ]
[root@devdb01 ~]# /etc/init.d/oracleasm createdisk DISK3 /dev/mapper/mpathd
Marking disk "DISK3" as an ASM disk:                       [  OK  ]
[root@devdb01 ~]# /etc/init.d/oracleasm createdisk DISK4 /dev/mapper/mpathe
Marking disk "DISK4" as an ASM disk:                       [  OK  ]
[root@devdb01 ~]# /etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4

So now we can create the diskgroup:

[oracle@devdb01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 12.1.0.1.0 Production on Tue Feb 6 12:57:19 2018

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 Automatic Storage Management option

SQL> SELECT path, header_status FROM v$asm_disk;

PATH           HEADER_STATU
--------------- ------------
ORCL:DISK1      PROVISIONED
ORCL:DISK2      PROVISIONED
ORCL:DISK3      PROVISIONED
ORCL:DISK4      PROVISIONED


SQL> CREATE DISKGROUP data EXTERNAL REDUNDANCY
  2  DISK 'ORCL:DISK1', 'ORCL:DISK2', 'ORCL:DISK3', 'ORCL:DISK4';

Diskgroup created.

SQL> SELECT path, header_status FROM v$asm_disk;

PATH            HEADER_STATU
--------------- ------------
ORCL:DISK1      MEMBER
ORCL:DISK2      MEMBER
ORCL:DISK3      MEMBER
ORCL:DISK4      MEMBER

[oracle@devdb01 ~]$ asmcmd
ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576   2048000  2047928                0         2047928              0             N  DATA/

Duplicating the Database

So now we’re all ready to duplicate the database from its last backup. I already had a script for building the standby for this customer, so I just changed the backup directory and used that:

#!/bin/sh

export ORACLE_SID=ORCL
export ORACLE_HOME=/u01/app/product/12.1.0/oracle
export PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin

sqlplus /nolog <

Left that running for 15 hours (it’s a decent sized database!) and came back to realize I’d made two mistakes. One of them is obvious, and the other less so:

  • The obvious one is of course I left that damn word “standby” in there, so I’d built another standby! D’uh!
  • The less obvious one is that the archives weren’t in that location, so none of the archived files were copied across.

So the first thing I had to do was copy all the relevant archive log files to the test environment. I then set the LOG_ARCHIVE_DEST parameter as needed, issued the RECOVER DATABASE USING BACKUP CONTROLFILE command and activated the standby as a primary. The system was now ready and waiting for the customer to start testing with.

The post Post GI / RDBMS Installation Configuration Steps appeared first on PeteWhoDidNotTweet.com.

Docker and Windows 10 with 1709 Patch aka Killing Me Slowly

So I transitioned in the last years from having a development lab, to VMs, to the cloud and now, tired of slow WiFi, been happily using Docker for most of my demos.  As of January, the latest upgrade to Windows 10, aka patch version 109, has been like a bad cat fight.

For anyone else using Docker on Windows, it’s very likely that the error “MobyLinuxVM failed to start worker process” is a bane of your existence.  After exhausting the standard attempt to uninstall whatever patches were applied by Microsoft, and post researching a solution, you’d discover its more of a perfect storm, than a single cause.  For me, it includes an anti-virus software that has a tamper-proof mechanism on it.  It’s one of those times I want to shoot myself for following company policy… </p />
</p></div>

    	  	<div class=

Silent Installation of the RDBMS

Introduction

In my last post, I walked you through the silent installation of the Grid Infrastructure software. In this post, we’re moving on to the next stage of the environment build for this customer, doing a silent installation of the RDBMS software.

RDBMS Installation

The silent installation of the RDBMS software is fairly similar to that of the Grid Infrastructure software. You create a response file that contains the responses you would normally provide interactively, and use that with the runInstaller program to perform the installation. The response file I used for that is as follows:

[oracle@devdb01 ~]$ cat database.rsp
####################################################################
## Copyright(c) Oracle Corporation 1998,2014. All rights reserved.##
##                                                                ##
## Specify values for the variables listed below to customize     ##
## your installation.                                             ##
##                                                                ##
## Each variable is associated with a comment. The comment        ##
## can help to populate the variables with the appropriate        ##
## values.                                                        ##
##                                                                ##
## IMPORTANT NOTE: This file contains plain text passwords and    ##
## should be secured to have read permission only by oracle user  ##
## or db administrator who owns this installation.                ##
##                                                                ##
####################################################################


#-------------------------------------------------------------------------------
# Do not change the following system generated value.
#-------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0

#-------------------------------------------------------------------------------
# Specify the installation option.
# It can be one of the following:
#   - INSTALL_DB_SWONLY
#   - INSTALL_DB_AND_CONFIG
#   - UPGRADE_DB
#-------------------------------------------------------------------------------
oracle.install.option=INSTALL_DB_SWONLY

#-------------------------------------------------------------------------------
# Specify the hostname of the system as set during the install. It can be used
# to force the installation to use an alternative hostname rather than using the
# first hostname found on the system. (e.g., for systems with multiple hostnames
# and network interfaces)
#-------------------------------------------------------------------------------
ORACLE_HOSTNAME=devdb01.acme.com.au

#-------------------------------------------------------------------------------
# Specify the Unix group to be set for the inventory directory.
#-------------------------------------------------------------------------------
UNIX_GROUP_NAME=oinstall

#-------------------------------------------------------------------------------
# Specify the location which holds the inventory files.
# This is an optional parameter if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/u01/app/oraInventory
#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.
#
# en   : English                  ja   : Japanese
# fr   : French                   ko   : Korean
# ar   : Arabic                   es   : Latin American Spanish
# bn   : Bengali                  lv   : Latvian
# pt_BR: Brazilian Portuguese     lt   : Lithuanian
# bg   : Bulgarian                ms   : Malay
# fr_CA: Canadian French          es_MX: Mexican Spanish
# ca   : Catalan                  no   : Norwegian
# hr   : Croatian                 pl   : Polish
# cs   : Czech                    pt   : Portuguese
# da   : Danish                   ro   : Romanian
# nl   : Dutch                    ru   : Russian
# ar_EG: Egyptian                 zh_CN: Simplified Chinese
# en_GB: English (Great Britain)  sk   : Slovak
# et   : Estonian                 sl   : Slovenian
# fi   : Finnish                  es_ES: Spanish
# de   : German                   sv   : Swedish
# el   : Greek                    th   : Thai
# iw   : Hebrew                   zh_TW: Traditional Chinese
# hu   : Hungarian                tr   : Turkish
# is   : Icelandic                uk   : Ukrainian
# in   : Indonesian               vi   : Vietnamese
# it   : Italian
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
#-------------------------------------------------------------------------------
SELECTED_LANGUAGES=all_langs

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Home.
#-------------------------------------------------------------------------------
ORACLE_HOME=/u01/app/product/12.1.0/oracle

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Base.
#-------------------------------------------------------------------------------
ORACLE_BASE=/u01/app

#-------------------------------------------------------------------------------
# Specify the installation edition of the component.
#
# The value should contain only one of these choices.

#   - EE     : Enterprise Edition

#-------------------------------------------------------------------------------
oracle.install.db.InstallEdition=SE

###############################################################################
#                                                                             #
# PRIVILEGED OPERATING SYSTEM GROUPS                                          #
# ------------------------------------------                                  #
# Provide values for the OS groups to which OSDBA and OSOPER privileges       #
# needs to be granted. If the install is being performed as a member of the   #
# group "dba", then that will be used unless specified otherwise below.       #
#                                                                             #
# The value to be specified for OSDBA and OSOPER group is only for UNIX based #
# Operating System.                                                           #
#                                                                             #
###############################################################################

#------------------------------------------------------------------------------
# The DBA_GROUP is the OS group which is to be granted OSDBA privileges.
#-------------------------------------------------------------------------------
oracle.install.db.DBA_GROUP=dba

#------------------------------------------------------------------------------
# The OPER_GROUP is the OS group which is to be granted OSOPER privileges.
# The value to be specified for OSOPER group is optional.
#------------------------------------------------------------------------------
oracle.install.db.OPER_GROUP=oper

#------------------------------------------------------------------------------
# The BACKUPDBA_GROUP is the OS group which is to be granted OSBACKUPDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.BACKUPDBA_GROUP=dba

#------------------------------------------------------------------------------
# The DGDBA_GROUP is the OS group which is to be granted OSDGDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.DGDBA_GROUP=dba

#------------------------------------------------------------------------------
# The KMDBA_GROUP is the OS group which is to be granted OSKMDBA privileges.
#------------------------------------------------------------------------------
oracle.install.db.KMDBA_GROUP=dba

###############################################################################
#                                                                             #
#                               Grid Options                                  #
#                                                                             #
###############################################################################
#------------------------------------------------------------------------------
# Specify the type of Real Application Cluster Database
#
#   - ADMIN_MANAGED: Admin-Managed
#   - POLICY_MANAGED: Policy-Managed
#
# If left unspecified, default will be ADMIN_MANAGED
#------------------------------------------------------------------------------
oracle.install.db.rac.configurationType=

#------------------------------------------------------------------------------
# Value is required only if RAC database type is ADMIN_MANAGED
#
# Specify the cluster node names selected during the installation.
# Leaving it blank will result in install on local server only (Single Instance)
#
# Example : oracle.install.db.CLUSTER_NODES=node1,node2
#------------------------------------------------------------------------------
oracle.install.db.CLUSTER_NODES=

#------------------------------------------------------------------------------
# This variable is used to enable or disable RAC One Node install.
#
#   - true  : Value of RAC One Node service name is used.
#   - false : Value of RAC One Node service name is not used.
#
# If left blank, it will be assumed to be false.
#------------------------------------------------------------------------------
oracle.install.db.isRACOneInstall=false

#------------------------------------------------------------------------------
# Value is required only if oracle.install.db.isRACOneInstall is true.
#
# Specify the name for RAC One Node Service
#------------------------------------------------------------------------------
oracle.install.db.racOneServiceName=

#------------------------------------------------------------------------------
# Value is required only if RAC database type is POLICY_MANAGED
#
# Specify a name for the new Server pool that will be configured
# Example : oracle.install.db.rac.serverpoolName=pool1
#------------------------------------------------------------------------------
oracle.install.db.rac.serverpoolName=

#------------------------------------------------------------------------------
# Value is required only if RAC database type is POLICY_MANAGED
#
# Specify a number as cardinality for the new Server pool that will be configured
# Example : oracle.install.db.rac.serverpoolCardinality=2
#------------------------------------------------------------------------------
oracle.install.db.rac.serverpoolCardinality=

###############################################################################
#                                                                             #
#                        Database Configuration Options                       #
#                                                                             #
###############################################################################

#-------------------------------------------------------------------------------
# Specify the type of database to create.
# It can be one of the following:
#   - GENERAL_PURPOSE
#   - DATA_WAREHOUSE
# GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications.
# DATA_WAREHOUSE : A starter database optimized for data warehousing applications.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

#-------------------------------------------------------------------------------
# Specify the Starter Database Global Database Name.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.globalDBName=

#-------------------------------------------------------------------------------
# Specify the Starter Database SID.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.SID=

#-------------------------------------------------------------------------------
# Specify whether the database should be configured as a Container database.
# The value can be either "true" or "false". If left blank it will be assumed
# to be "false".
#-------------------------------------------------------------------------------
oracle.install.db.ConfigureAsContainerDB=

#-------------------------------------------------------------------------------
# Specify the  Pluggable Database name for the pluggable database in Container Database.
#-------------------------------------------------------------------------------
oracle.install.db.config.PDBName=

#-------------------------------------------------------------------------------
# Specify the Starter Database character set.
#
#  One of the following
#  AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2,
#  EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257,
#  BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6,
#  AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8,
#  IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
#  KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950,
#  ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.characterSet=

#------------------------------------------------------------------------------
# This variable should be set to true if Automatic Memory Management
# in Database is desired.
# If Automatic Memory Management is not desired, and memory allocation
# is to be done manually, then set it to false.
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryOption=

#-------------------------------------------------------------------------------
# Specify the total memory allocation for the database. Value(in MB) should be
# at least 256 MB, and should not exceed the total physical memory available
# on the system.
# Example: oracle.install.db.config.starterdb.memoryLimit=512
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryLimit=

#-------------------------------------------------------------------------------
# This variable controls whether to load Example Schemas onto
# the starter database or not.
# The value can be either "true" or "false". If left blank it will be assumed
# to be "false".
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.installExampleSchemas=

###############################################################################
#                                                                             #
# Passwords can be supplied for the following four schemas in the             #
# starter database:                                                           #
#   SYS                                                                       #
#   SYSTEM                                                                    #
#   DBSNMP (used by Enterprise Manager)                                       #
#                                                                             #
# Same password can be used for all accounts (not recommended)                #
# or different passwords for each account can be provided (recommended)       #
#                                                                             #
###############################################################################

#------------------------------------------------------------------------------
# This variable holds the password that is to be used for all schemas in the
# starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.ALL=

#-------------------------------------------------------------------------------
# Specify the SYS password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYS=

#-------------------------------------------------------------------------------
# Specify the SYSTEM password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYSTEM=

#-------------------------------------------------------------------------------
# Specify the DBSNMP password for the starter database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.DBSNMP=

#-------------------------------------------------------------------------------
# Specify the PDBADMIN password required for creation of Pluggable Database in the Container Database.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.PDBADMIN=

#-------------------------------------------------------------------------------
# Specify the management option to use for managing the database.
# Options are:
# 1. CLOUD_CONTROL - If you want to manage your database with Enterprise Manager Cloud Control along with Database Express.
# 2. DEFAULT   -If you want to manage your database using the default Database Express option.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.managementOption=

#-------------------------------------------------------------------------------
# Specify the OMS host to connect to Cloud Control.
# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.omsHost=

#-------------------------------------------------------------------------------
# Specify the OMS port to connect to Cloud Control.
# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.omsPort=

#-------------------------------------------------------------------------------
# Specify the EM Admin user name to use to connect to Cloud Control.
# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.emAdminUser=

#-------------------------------------------------------------------------------
# Specify the EM Admin password to use to connect to Cloud Control.
# Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.emAdminPassword=

###############################################################################
#                                                                             #
# SPECIFY RECOVERY OPTIONS                                                    #
# ------------------------------------                                        #
# Recovery options for the database can be mentioned using the entries below  #
#                                                                             #
###############################################################################

#------------------------------------------------------------------------------
# This variable is to be set to false if database recovery is not required. Else
# this can be set to true.
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.enableRecovery=

#-------------------------------------------------------------------------------
# Specify the type of storage to use for the database.
# It can be one of the following:
#   - FILE_SYSTEM_STORAGE
#   - ASM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.storageType=

#-------------------------------------------------------------------------------
# Specify the database file location which is a directory for datafiles, control
# files, redo logs.
#
# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=

#-------------------------------------------------------------------------------
# Specify the recovery location.
#
# Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

#-------------------------------------------------------------------------------
# Specify the existing ASM disk groups to be used for storage.
#
# Applicable only when oracle.install.db.config.starterdb.storageType=ASM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.asm.diskGroup=

#-------------------------------------------------------------------------------
# Specify the password for ASMSNMP user of the ASM instance.
#
# Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE
#-------------------------------------------------------------------------------
oracle.install.db.config.asm.ASMSNMPPassword=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username.
#
#  Example   : MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password.
#
# Example    : MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify whether to enable the user to set the password for
# My Oracle Support credentials. The value can be either true or false.
# If left blank it will be assumed to be false.
#
# Example    : SECURITY_UPDATES_VIA_MYORACLESUPPORT=true
#------------------------------------------------------------------------------
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

#------------------------------------------------------------------------------
# Specify whether user doesn't want to configure Security Updates.
# The value for this variable should be true if you don't want to configure
# Security Updates, false otherwise.
#
# The value can be either true or false. If left blank it will be assumed
# to be false.
#
# Example    : DECLINE_SECURITY_UPDATES=false
#------------------------------------------------------------------------------
DECLINE_SECURITY_UPDATES=true

oracle.installer.autoupdates.option=SKIP_UPDATES
#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25
#------------------------------------------------------------------------------
PROXY_PORT=

#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password
#------------------------------------------------------------------------------
PROXY_PWD=

#------------------------------------------------------------------------------
# Specify the Oracle Support Hub URL.
#
# Example    : COLLECTOR_SUPPORTHUB_URL=https://orasupporthub.company.com:8080/
#------------------------------------------------------------------------------
COLLECTOR_SUPPORTHUB_URL=

Again, there are some things to comment on here:

  • Firstly, I stole the original database.rsp file from Tim Hall’s excellent website. Not sure where Tim got this from originally, but it was missing the line I’ve included at line 439 of the code sample above (oracle.installer.autoupdates.option=SKIP_UPDATES). When I tried running the installation without that line, it came up with an error – “cvc-complex-type.2.4.b: The content of element 'properties' is not complete. One of '{oracle.install.IsBuiltInAccount, oracle.install.OracleHomeUserName, oracle.install.OracleHomeUserPassword, oracle.install.db.config.pdbName, oracle.install.db.config.starterdb.walletPassword, PROXY_REALM, AUTOUPDATES_MYORACLESUPPORT_USERNAME, AUTOUPDATES_MYORACLESUPPORT_PASSWORD, oracle.installer.autoupdates.option, oracle.installer.autoupdates.downloadUpdatesLoc}' is expected.” After a bit of googling, I found the issue had been noted before, and the workaround was to add line 439. Note the position of that line doesn’t matter, that’s just where I was up to in editing the file when I found the workaround. <br />
</li></ul></div>

    	  	<div class=

Silent Installation of Grid Infrastructure

Introduction

Recently I had a requirement to install the Grid Infrastructure and Oracle RDBMS on a completely new VM. The customer I was doing this work for wanted to take a copy of their Production environment to another server so they could test an upgrade of their existing environment from Oracle GI / RDBMS 12.1 to 12.2. So they built a VM for me, copied the 12.1 installation media for both GI and the RDBMS and said “Go for it!”

I decided to log everything I did and write a series of blog posts based on my experience, in case it was of use to others. There were a few issues I needed to deal with for this customer. Some of those issues were:

  • The customer wanted to test some cloning software for other reasons that were orthogonal to this task. The cloning software was only supported on Oracle Linux 6.5 (I didn’t ask why, just accepted that this was the requirement), so they built the VM for me on that release of Oracle Linux.
  • The existing Production environment was 12.1.0.1 – absolutely vanilla, no patches at all (you can see why we suggested they upgrade!). That release is, I think, no longer supported, but as that is what the Production environment was using, we had to build the test environment using 12.1.0.1 as well.
  • The Production environment was using Standard Edition, so the test environment had to use that as well.
  • I didn’t have direct access to the test VM. I had to ssh to the Production machine, and then onto the test VM. There was no GUI available in this configuration, so the entire build had to be done using response files. I had previously built a 12.2 RDBMS kernel for another customer, but had no experience at building Grid Infrastructure using a response file.
  • There wasn’t a lot of storage available for the VM (in fact I had to extend the volume as part of this work, which is the subject of another post). More importantly, there was certainly not enough space to load a backup of their Production environment, so we had to NFS mount their Production backup device to duplicate the database from.
  • The customer wasn’t familiar with installing Oracle, so they hadn’t performed any of the checks needed to ensure a successful installation.
  • Given this was a test to see how the upgrade would go in Production, I wanted to build an environment that matched their existing Production environment as closely as possible. That was built quite some time back, and not by me, so there were some decisions made at that stage that I probably wouldn’t have made. However, I replicated those decisions to try to match their Production environment.
  • ASM is used in the Production environment, so that’s why the Grid Infrastructure was installed.

So given that set of issues to deal with, here’s how the installation was done. In this post, I’m going to cover the installation of Grid Infrastructure. I’ll cover the rest in later posts.

Pre-installation Checks

Given the customer had built the VM without knowledge of the Oracle requirements, it was important to ensure all the installation requirements were met. I basically had a VM that had an “oracle” user, but still needed to do a lot of work to get the VM ready for a successful installation. So I grabbed the installation documentation and started running through the checks documented there.

Firstly I checked the memory configuration:

[root ~]# grep MemTotal /proc/meminfo
MemTotal:       33015808 kB
[root ~]$ grep SwapTotal /proc/meminfo
SwapTotal:       8130556 kB
[root ~]$ free
             total       used       free     shared    buffers     cached
Mem:      33015808     844904   32170904          0      19280     107812
-/+ buffers/cache:     717812   32297996
Swap:      8130556          0    8130556

I checked the groups on the VM, and found oinstall, dba, and oper did not exist. These were the only three groups used in the Production environment, so I restricted the test build to those as well:

[root ~]# groupadd oinstall
[root ~]# groupadd dba
[root ~]# groupadd oper

[root ~]# groups oracle
oracle : oracle
[root ~]# usermod -g oinstall oracle
[root ~]# usermod -G dba,oper oracle
[root ~]# id oracle
uid=500(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper)

Next, I went on to look at the storage, and create some directories for the installation (NOTE: Production only had an oracle user, not a grid user, which is why everything in Test is also owned by the oracle user):

[root ~]# mkdir -p /u01
[root ~]# mkdir -p /u01/app
[root ~]# mkdir -p /u01/app/oracle
[root ~]# chown oracle:oinstall /u01
[root ~]# chown oracle:oinstall /u01/app
[root ~]# chmod -R 775 /u01/

As mentioned earlier, though this is a standalone server (not RAC), ASM is used for the storage, so I needed to check for – and install / configure – ASM:

[root ~]# rpm -qa | grep oracleasm
[root ~]# yum install oracleasm-support
public_ol6_UEK_latest                                                   | 1.2 kB     00:00
public_ol6_u5_base                                                      | 1.4 kB     00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package oracleasm-support.x86_64 0:2.1.8-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================
 Package                   Arch           Version             Repository                  Size
===============================================================================================
Installing:
 oracleasm-support         x86_64         2.1.8-1.el6         public_ol6_u5_base          73 k

Transaction Summary
===============================================================================================
Install       1 Package(s)

Total download size: 73 k
Installed size: 216 k
Is this ok [y/N]: y
Downloading Packages:
oracleasm-support-2.1.8-1.el6.x86_64.rpm                                |  73 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : oracleasm-support-2.1.8-1.el6.x86_64                                        1/1
  Verifying  : oracleasm-support-2.1.8-1.el6.x86_64                                        1/1

Installed:
  oracleasm-support.x86_64 0:2.1.8-1.el6

Complete!

[root oracle]# rpm -ihv oracleasmlib-2.0.12-1.el6.x86_64.rpm
Preparing...                ########################################### [100%]
   1:oracleasmlib           ########################################### [100%]
[root oracle]# rpm -qa | grep oracleasm
oracleasmlib-2.0.12-1.el6.x86_64
oracleasm-support-2.1.8-1.el6.x86_64
[root oracle]# which oracleasm
/usr/sbin/oracleasm
[root oracle]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting  without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

[root oracle]# ls -lrt /etc/sysconfig/oracleasm
lrwxrwxrwx 1 root root 24 Feb  5 11:46 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm
[root oracle]# oracleasm status
Checking if ASM is loaded: no
Checking if /dev/oracleasm is mounted: no
[root oracle]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

Verify the oracleasm configuration

a. Perform ‘df –ha’, this should show you that /dev/oracleasmfs is mounted.

Execute the ‘lsmod’ command, to show the loaded oracleasm module.

[root oracle]# lsmod | grep oracleasm
oracleasm              54288  1

[root oracle]# oracleasm-discover
Using ASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so
[ASM Library - Generic Linux, version 2.0.12 (KABI_V2)]
 

[root oracle]# df -ha
Filesystem                             Size  Used Avail Use% Mounted on
/dev/mapper/vg_brsyddrdevdb01-lv_root   20G  7.8G   11G  42% /
proc                                      0     0     0    - /proc
sysfs                                     0     0     0    - /sys
devpts                                    0     0     0    - /dev/pts
tmpfs                                   16G     0   16G   0% /dev/shm
/dev/sda1                              485M   97M  364M  21% /boot
none                                      0     0     0    - /proc/sys/fs/binfmt_misc
oracleasmfs                               0     0     0    - /dev/oracleasm

Next, I wanted to install the Oracle Preinstallation RPM. Since this VM had been built by the client, I had no idea if it was registered for Linux support, so I downloaded a copy of the preinstallation RPM and did a local install of that:

[root oracle]# yum localinstall oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64.rpm
Setting up Local Package Process
Examining oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64.rpm: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
Marking oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-3.el7 will be installed
--> Processing Dependency: compat-libcap1 for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: compat-libstdc++-33 for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: gcc for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: gcc-c++ for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: ksh for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: libaio-devel for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: libstdc++-devel for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: xorg-x11-utils for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Processing Dependency: xorg-x11-xauth for package: oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
--> Running transaction check
---> Package compat-libcap1.x86_64 0:1.10-1 will be installed
---> Package compat-libstdc++-33.x86_64 0:3.2.3-69.el6 will be installed
---> Package gcc.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: cpp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-4.el6.x86_64
---> Package gcc-c++.x86_64 0:4.4.7-4.el6 will be installed
--> Processing Dependency: libmpfr.so.1()(64bit) for package: gcc-c++-4.4.7-4.el6.x86_64
---> Package ksh.x86_64 0:20120801-10.el6 will be installed
---> Package libaio-devel.x86_64 0:0.3.107-10.el6 will be installed
---> Package libstdc++-devel.x86_64 0:4.4.7-4.el6 will be installed
---> Package xorg-x11-utils.x86_64 0:7.5-6.el6 will be installed
--> Processing Dependency: libdmx.so.1()(64bit) for package: xorg-x11-utils-7.5-6.el6.x86_64
--> Processing Dependency: libXxf86misc.so.1()(64bit) for package: xorg-x11-utils-7.5-6.el6.x86_64
--> Processing Dependency: libXxf86dga.so.1()(64bit) for package: xorg-x11-utils-7.5-6.el6.x86_64
---> Package xorg-x11-xauth.x86_64 1:1.0.2-7.1.el6 will be installed
--> Processing Dependency: libXmuu.so.1()(64bit) for package: 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64
--> Running transaction check
---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed
--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64
---> Package cpp.x86_64 0:4.4.7-4.el6 will be installed
---> Package libXmu.x86_64 0:1.1.1-2.el6 will be installed
---> Package libXxf86dga.x86_64 0:1.1.3-2.el6 will be installed
---> Package libXxf86misc.x86_64 0:1.0.3-4.el6 will be installed
---> Package libdmx.x86_64 0:1.1.2-2.el6 will be installed
---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed
--> Running transaction check
---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
 Package                              Arch   Version         Repository                 Size
=============================================================================================
Installing:
 oracle-rdbms-server-12cR1-preinstall x86_64 1.0-3.el7       /oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64
                                                                                        43 k
Installing for dependencies:
 cloog-ppl                            x86_64 0.15.7-1.2.el6  public_ol6_u5_base         93 k
 compat-libcap1                       x86_64 1.10-1          public_ol6_u5_base         17 k
 compat-libstdc++-33                  x86_64 3.2.3-69.el6    public_ol6_u5_base        183 k
 cpp                                  x86_64 4.4.7-4.el6     public_ol6_u5_base        3.7 M
 gcc                                  x86_64 4.4.7-4.el6     public_ol6_u5_base         10 M
 gcc-c++                              x86_64 4.4.7-4.el6     public_ol6_u5_base        4.7 M
 ksh                                  x86_64 20120801-10.el6 public_ol6_u5_base        755 k
 libXmu                               x86_64 1.1.1-2.el6     public_ol6_u5_base         65 k
 libXxf86dga                          x86_64 1.1.3-2.el6     public_ol6_u5_base         24 k
 libXxf86misc                         x86_64 1.0.3-4.el6     public_ol6_u5_base         17 k
 libaio-devel                         x86_64 0.3.107-10.el6  public_ol6_u5_base         13 k
 libdmx                               x86_64 1.1.2-2.el6     public_ol6_u5_base         20 k
 libstdc++-devel                      x86_64 4.4.7-4.el6     public_ol6_u5_base        1.6 M
 mpfr                                 x86_64 2.4.1-6.el6     public_ol6_u5_base        156 k
 ppl                                  x86_64 0.10.2-11.el6   public_ol6_u5_base        1.3 M
 xorg-x11-utils                       x86_64 7.5-6.el6       public_ol6_u5_base         94 k
 xorg-x11-xauth                       x86_64 1:1.0.2-7.1.el6 public_ol6_u5_base         34 k

Transaction Summary
=============================================================================================
Install      18 Package(s)

Total size: 23 M
Total download size: 23 M
Installed size: 56 M
Is this ok [y/N]: y
Downloading Packages:
(1/17): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm                           |  93 kB     00:00
(2/17): compat-libcap1-1.10-1.x86_64.rpm                              |  17 kB     00:00
(3/17): compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm                   | 183 kB     00:00
(4/17): cpp-4.4.7-4.el6.x86_64.rpm                                    | 3.7 MB     00:02
(5/17): gcc-4.4.7-4.el6.x86_64.rpm                                    |  10 MB     00:07
(6/17): gcc-c++-4.4.7-4.el6.x86_64.rpm                                | 4.7 MB     00:03
(7/17): ksh-20120801-10.el6.x86_64.rpm                                | 755 kB     00:00
(8/17): libXmu-1.1.1-2.el6.x86_64.rpm                                 |  65 kB     00:00
(9/17): libXxf86dga-1.1.3-2.el6.x86_64.rpm                            |  24 kB     00:00
(10/17): libXxf86misc-1.0.3-4.el6.x86_64.rpm                          |  17 kB     00:00
(11/17): libaio-devel-0.3.107-10.el6.x86_64.rpm                       |  13 kB     00:00
(12/17): libdmx-1.1.2-2.el6.x86_64.rpm                                |  20 kB     00:00
(13/17): libstdc++-devel-4.4.7-4.el6.x86_64.rpm                       | 1.6 MB     00:01
(14/17): mpfr-2.4.1-6.el6.x86_64.rpm                                  | 156 kB     00:00
(15/17): ppl-0.10.2-11.el6.x86_64.rpm                                 | 1.3 MB     00:00
(16/17): xorg-x11-utils-7.5-6.el6.x86_64.rpm                          |  94 kB     00:00
(17/17): xorg-x11-xauth-1.0.2-7.1.el6.x86_64.rpm                      |  34 kB     00:00
---------------------------------------------------------------------------------------------
Total                                                        1.0 MB/s |  23 MB     00:22
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing : mpfr-2.4.1-6.el6.x86_64                                                  1/18
  Installing : libstdc++-devel-4.4.7-4.el6.x86_64                                       2/18
  Installing : cpp-4.4.7-4.el6.x86_64                                                   3/18
  Installing : libXmu-1.1.1-2.el6.x86_64                                                4/18
  Installing : 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64                                    5/18
  Installing : ksh-20120801-10.el6.x86_64                                               6/18
  Installing : libXxf86dga-1.1.3-2.el6.x86_64                                           7/18
  Installing : compat-libstdc++-33-3.2.3-69.el6.x86_64                                  8/18
  Installing : libXxf86misc-1.0.3-4.el6.x86_64                                          9/18
  Installing : libaio-devel-0.3.107-10.el6.x86_64                                      10/18
  Installing : ppl-0.10.2-11.el6.x86_64                                                11/18
  Installing : cloog-ppl-0.15.7-1.2.el6.x86_64                                         12/18
  Installing : gcc-4.4.7-4.el6.x86_64                                                  13/18
  Installing : gcc-c++-4.4.7-4.el6.x86_64                                              14/18
  Installing : libdmx-1.1.2-2.el6.x86_64                                               15/18
  Installing : xorg-x11-utils-7.5-6.el6.x86_64                                         16/18
  Installing : compat-libcap1-1.10-1.x86_64                                            17/18
  Installing : oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64                   18/18
  Verifying  : compat-libcap1-1.10-1.x86_64                                             1/18
  Verifying  : gcc-c++-4.4.7-4.el6.x86_64                                               2/18
  Verifying  : libstdc++-devel-4.4.7-4.el6.x86_64                                       3/18
  Verifying  : xorg-x11-utils-7.5-6.el6.x86_64                                          4/18
  Verifying  : cpp-4.4.7-4.el6.x86_64                                                   5/18
  Verifying  : libdmx-1.1.2-2.el6.x86_64                                                6/18
  Verifying  : ppl-0.10.2-11.el6.x86_64                                                 7/18
  Verifying  : libaio-devel-0.3.107-10.el6.x86_64                                       8/18
  Verifying  : libXxf86misc-1.0.3-4.el6.x86_64                                          9/18
  Verifying  : mpfr-2.4.1-6.el6.x86_64                                                 10/18
  Verifying  : compat-libstdc++-33-3.2.3-69.el6.x86_64                                 11/18
  Verifying  : libXxf86dga-1.1.3-2.el6.x86_64                                          12/18
  Verifying  : 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64                                   13/18
  Verifying  : gcc-4.4.7-4.el6.x86_64                                                  14/18
  Verifying  : ksh-20120801-10.el6.x86_64                                              15/18
  Verifying  : oracle-rdbms-server-12cR1-preinstall-1.0-3.el7.x86_64                   16/18
  Verifying  : libXmu-1.1.1-2.el6.x86_64                                               17/18
  Verifying  : cloog-ppl-0.15.7-1.2.el6.x86_64                                         18/18

Installed:
  oracle-rdbms-server-12cR1-preinstall.x86_64 0:1.0-3.el7

Dependency Installed:
  cloog-ppl.x86_64 0:0.15.7-1.2.el6                 compat-libcap1.x86_64 0:1.10-1
  compat-libstdc++-33.x86_64 0:3.2.3-69.el6         cpp.x86_64 0:4.4.7-4.el6
  gcc.x86_64 0:4.4.7-4.el6                          gcc-c++.x86_64 0:4.4.7-4.el6
  ksh.x86_64 0:20120801-10.el6                      libXmu.x86_64 0:1.1.1-2.el6
  libXxf86dga.x86_64 0:1.1.3-2.el6                  libXxf86misc.x86_64 0:1.0.3-4.el6
  libaio-devel.x86_64 0:0.3.107-10.el6              libdmx.x86_64 0:1.1.2-2.el6
  libstdc++-devel.x86_64 0:4.4.7-4.el6              mpfr.x86_64 0:2.4.1-6.el6
  ppl.x86_64 0:0.10.2-11.el6                        xorg-x11-utils.x86_64 0:7.5-6.el6
  xorg-x11-xauth.x86_64 1:1.0.2-7.1.el6

Complete!

Next, I checked the values found in /etc/sysctl.conf and /etc/security/limits.conf on the Production machine, and copied those to the test environment. Finally, I edited the .bash_profile file for the oracle user and set umask to 022:

[oracle ~]$ . ./.bash_profile
[oracle ~]$ umask
0022

Grid Infrastructure Installation

Now that the VM was set up correctly, it was time to install the Grid Infrastructure code. Since I was doing a software installation only, the only relevant parts of the response file were sections A, B, and C (in fact even C wasn’t needed), so I left everything else blank. Here’s the grid.rsp file I used for the installation:

[oracle ~]$ cat grid.rsp
###############################################################################
## Copyright(c) Oracle Corporation 1998,2013. All rights reserved.           ##
##                                                                           ##
## Specify values for the variables listed below to customize                ##
## your installation.                                                        ##
##                                                                           ##
## Each variable is associated with a comment. The comment                   ##
## can help to populate the variables with the appropriate                   ##
## values.                                                                   ##
##                                                                           ##
## IMPORTANT NOTE: This file contains plain text passwords and               ##
## should be secured to have read permission only by oracle user             ##
## or db administrator who owns this installation.                           ##
##                                                                           ##
###############################################################################

###############################################################################
##                                                                           ##
## Instructions to fill this response file                                   ##
## To install and configure 'Grid Infrastructure for Cluster'                ##
##  - Fill out sections A,B,C,D,E,F and G                                    ##
##  - Fill out section G if OCR and voting disk should be placed on ASM      ##
##                                                                           ##
## To install and configure 'Grid Infrastructure for Standalone server'      ##
##  - Fill out sections A,B and G                                            ##
##                                                                           ##
## To install software for 'Grid Infrastructure'                             ##
##  - Fill out sections A,B and C                                            ##
##                                                                           ##
## To upgrade clusterware and/or Automatic storage management of earlier     ##
## releases                                                                  ##
##  - Fill out sections A,B,C,D and H                                        ##
##                                                                           ##
###############################################################################

#------------------------------------------------------------------------------
# Do not change the following system generated value.
#------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.1.0

###############################################################################
#                                                                             #
#                          SECTION A - BASIC                                  #
#                                                                             #
###############################################################################

#-------------------------------------------------------------------------------
# Specify the hostname of the system as set during the install. It can be used
# to force the installation to use an alternative hostname rather than using the
# first hostname found on the system. (e.g., for systems with multiple hostnames
# and network interfaces)
#-------------------------------------------------------------------------------
ORACLE_HOSTNAME=devdb01.acme.com.au

#-------------------------------------------------------------------------------
# Specify the location which holds the inventory files.
# This is an optional parameter if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/u01/app/oraInventory

#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.
#
# en   : English                  ja   : Japanese
# fr   : French                   ko   : Korean
# ar   : Arabic                   es   : Latin American Spanish
# bn   : Bengali                  lv   : Latvian
# pt_BR: Brazilian Portuguese     lt   : Lithuanian
# bg   : Bulgarian                ms   : Malay
# fr_CA: Canadian French          es_MX: Mexican Spanish
# ca   : Catalan                  no   : Norwegian
# hr   : Croatian                 pl   : Polish
# cs   : Czech                    pt   : Portuguese
# da   : Danish                   ro   : Romanian
# nl   : Dutch                    ru   : Russian
# ar_EG: Egyptian                 zh_CN: Simplified Chinese
# en_GB: English (Great Britain)  sk   : Slovak
# et   : Estonian                 sl   : Slovenian
# fi   : Finnish                  es_ES: Spanish
# de   : German                   sv   : Swedish
# el   : Greek                    th   : Thai
# iw   : Hebrew                   zh_TW: Traditional Chinese
# hu   : Hungarian                tr   : Turkish
# is   : Icelandic                uk   : Ukrainian
# in   : Indonesian               vi   : Vietnamese
# it   : Italian
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
#-------------------------------------------------------------------------------
SELECTED_LANGUAGES=all_langs

#-------------------------------------------------------------------------------
# Specify the installation option.
# Allowed values: CRS_CONFIG or HA_CONFIG or UPGRADE or CRS_SWONLY or HA_SWONLY
#   - CRS_CONFIG : To configure Grid Infrastructure for cluster
#   - HA_CONFIG  : To configure Grid Infrastructure for stand alone server
#   - UPGRADE    : To upgrade clusterware software of earlier release
#   - CRS_SWONLY : To install clusterware files only (can be configured for cluster
#                  or stand alone server later)
#   - HA_SWONLY  : To install clusterware files only (can be configured for stand
#                  alone server later. This is only supported on Windows.)
#-------------------------------------------------------------------------------
oracle.install.option=CRS_SWONLY

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Base.
#-------------------------------------------------------------------------------
ORACLE_BASE=/u01/app

#-------------------------------------------------------------------------------
# Specify the complete path of the Oracle Home.
#-------------------------------------------------------------------------------
ORACLE_HOME=/u01/app/product/12.1.0/grid

################################################################################
#                                                                              #
#                              SECTION B - GROUPS                              #
#                                                                              #
#   The following three groups need to be assigned for all GI installations.   #
#   OSDBA and OSOPER can be the same or different.  OSASM must be different    #
#   than the other two.                                                        #
#   The value to be specified for OSDBA, OSOPER and OSASM group is only for    #
#   Unix based Operating System.                                               #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# The DBA_GROUP is the OS group which is to be granted OSDBA privileges.
#-------------------------------------------------------------------------------
oracle.install.asm.OSDBA=dba

#-------------------------------------------------------------------------------
# The OPER_GROUP is the OS group which is to be granted OSOPER privileges.
# The value to be specified for OSOPER group is optional.
#-------------------------------------------------------------------------------
oracle.install.asm.OSOPER=oper

#-------------------------------------------------------------------------------
# The OSASM_GROUP is the OS group which is to be granted OSASM privileges. This
# must be different than the previous two.
#-------------------------------------------------------------------------------
oracle.install.asm.OSASM=oinstall

################################################################################
#                                                                              #
#                           SECTION C - SCAN                                   #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify a name for SCAN
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.scanName=

#-------------------------------------------------------------------------------
# Specify a unused port number for SCAN service
#-------------------------------------------------------------------------------

oracle.install.crs.config.gpnp.scanPort=

################################################################################
#                                                                              #
#                           SECTION D - CLUSTER & GNS                         #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify the type of cluster you would like to configure
# Allowed values: FLEX and STANDARD
#-------------------------------------------------------------------------------
oracle.install.crs.config.ClusterType=


#-------------------------------------------------------------------------------
# Specify a name for the Cluster you are creating.
#
# The maximum length allowed for clustername is 15 characters. The name can be
# any combination of lower and uppercase alphabets (A - Z), (0 - 9), hyphen(-)
# and underscore(_).
#-------------------------------------------------------------------------------
oracle.install.crs.config.clusterName=

#-------------------------------------------------------------------------------
# Specify 'true' if you would like to configure Grid Naming Service(GNS), else
# specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.configureGNS=

#-------------------------------------------------------------------------------
# Applicable only if you choose to configure GNS
# Specify 'true' if you would like to assign SCAN name VIP and Node VIPs by DHCP
# , else specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.config.autoConfigureClusterNodeVIP=

#-------------------------------------------------------------------------------
# Applicable only if you choose to configure GNS
# Specify the type of GNS configuration for cluster
# Allowed values are: CREATE_NEW_GNS and USE_SHARED_GNS
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.gnsOption=

#-------------------------------------------------------------------------------
# Applicable only if SHARED_GNS is being configured for cluster
# Specify the path to the GNS client data file
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.gnsClientDataFile=

#-------------------------------------------------------------------------------
# Applicable only if you choose to configure GNS for this cluster
# oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS
# Specify the GNS subdomain and an unused virtual hostname for GNS service
#-------------------------------------------------------------------------------
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=



#-------------------------------------------------------------------------------
# Specify the list of nodes that have to be configured to be part of the cluster.
#
# The list should a comma-separated list of tuples.  Each tuple should be a
# colon-separated string that contains
# - 2 fields if configuring a Standard Cluster, or
# - 3 fields if configuring a Flex Cluster
#
# The fields should be ordered as follows:
# 1. The first field should be the public node name.
# 2. The second field should be the virtual host name
#    (Should be specified as AUTO if you have chosen 'auto configure for VIP'
#     i.e. autoConfigureClusterNodeVIP=true)
# 3. The third field indicates the role of node (HUB,LEAF). This has to
#    be provide only if Flex Cluster is being configured.
#
# Examples
# For configuring Standard Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip,node2:node2-vip
# For configuring Flex Cluster: oracle.install.crs.config.clusterNodes=node1:node1-vip:HUB,node2:node2-vip:LEAF
#
#
#-------------------------------------------------------------------------------
oracle.install.crs.config.clusterNodes=

#-------------------------------------------------------------------------------
# The value should be a comma separated strings where each string is as shown below
# InterfaceName:SubnetMask:InterfaceType
# where InterfaceType can be either "1", "2", "3", "4", or "5"
# InterfaceType stand for the following values
#   - 1 : PUBLIC
#   - 2 : PRIVATE
#   - 3 : DO NOT USE
#   - 4 : ASM
#   - 5 : ASM & PRIVATE
#
# For example: eth0:140.87.24.0:1,eth1:10.2.1.0:2,eth2:140.87.52.0:3
#
#-------------------------------------------------------------------------------
oracle.install.crs.config.networkInterfaceList=

#-------------------------------------------------------------------------------
# Specify 'true' if you would like to configure Management Database Option, else
# specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.managementdb.configure=

################################################################################
#                                                                              #
#                              SECTION E - STORAGE                             #
#                                                                              #
################################################################################

#-------------------------------------------------------------------------------
# Specify the type of storage to use for Oracle Cluster Registry(OCR) and Voting
# Disks files
#   - LOCAL_ASM_STORAGE
#   - FLEX_ASM_STORAGE
#   - FILE_SYSTEM_STORAGE
# If configuring a Flex Cluster, FLEX_ASM_STORAGE is the only allowed value
#-------------------------------------------------------------------------------
oracle.install.crs.config.storageOption=

#-------------------------------------------------------------------------------
# These properties are applicable only if FILE_SYSTEM_STORAGE is chosen for
# storing OCR and voting disk
# Specify the location(s) and redundancy for OCR and voting disks
# Multiple locations can be specified, separated by commas.
# In case of windows, mention the drive location that is specified to be
# formatted for DATA in the above property.
# Redundancy can be one of these:
#     EXTERNAL - one(1) location should be specified for OCR and voting disk
#     NORMAL - three(3) locations should be specified for OCR and voting disk
# Example:
#     For Unix based Operating System:
#     oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=/oradbocfs/storage/vdsk1,/oradbocfs/storage/vdsk2,/oradbocfs/storage/vdsk3
#     oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=/oradbocfs/storage/ocr1,/oradbocfs/storage/ocr2,/oradbocfs/storage/ocr3
#     For Windows based Operating System OCR/VDSK on shared storage is not supported.
#-------------------------------------------------------------------------------
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=
################################################################################
#                                                                              #
#                               SECTION F - IPMI                               #
#                                                                              #
################################################################################

#-------------------------------------------------------------------------------
# Specify 'true' if you would like to configure Intelligent Power Management interface
# (IPMI), else specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.config.useIPMI=

#-------------------------------------------------------------------------------
# Applicable only if you choose to configure IPMI
# i.e. oracle.install.crs.config.useIPMI=true
# Specify the username and password for using IPMI service
#-------------------------------------------------------------------------------
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=

################################################################################
#                                                                              #
#                                SECTION G - ASM                               #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify a password for SYSASM user of the ASM instance
#-------------------------------------------------------------------------------
oracle.install.asm.SYSASMPassword=

#-------------------------------------------------------------------------------
# The ASM DiskGroup
#
# Example: oracle.install.asm.diskGroup.name=data
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.name=

#-------------------------------------------------------------------------------
# Redundancy level to be used by ASM.
# It can be one of the following
#   - NORMAL
#   - HIGH
#   - EXTERNAL
# Example: oracle.install.asm.diskGroup.redundancy=NORMAL
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.redundancy=

#-------------------------------------------------------------------------------
# Allocation unit size to be used by ASM.
# It can be one of the following values
#   - 1
#   - 2
#   - 4
#   - 8
#   - 16
#   - 32
#   - 64
# Example: oracle.install.asm.diskGroup.AUSize=4
# size unit is MB
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.AUSize=

#-------------------------------------------------------------------------------
# List of disks to create a ASM DiskGroup
#
# Example:
#     For Unix based Operating System:
#     oracle.install.asm.diskGroup.disks=/oracle/asm/disk1,/oracle/asm/disk2
#     For Windows based Operating System:
#     oracle.install.asm.diskGroup.disks=\\.\ORCLDISKDATA0,\\.\ORCLDISKDATA1
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.disks=

#-------------------------------------------------------------------------------
# The disk discovery string to be used to discover the disks used create a ASM DiskGroup
#
# Example:
#     For Unix based Operating System:
#     oracle.install.asm.diskGroup.diskDiscoveryString=/oracle/asm/*
#     For Windows based Operating System:
#     oracle.install.asm.diskGroup.diskDiscoveryString=\\.\ORCLDISK*
#
#-------------------------------------------------------------------------------
oracle.install.asm.diskGroup.diskDiscoveryString=

#-------------------------------------------------------------------------------
# oracle.install.asm.monitorPassword=password
#-------------------------------------------------------------------------------
oracle.install.asm.monitorPassword=


################################################################################
#                                                                              #
#                             SECTION H - UPGRADE                              #
#                                                                              #
################################################################################
#-------------------------------------------------------------------------------
# Specify whether to ignore down nodes during upgrade operation.
# Value should be 'true' to ignore down nodes otherwise specify 'false'
#-------------------------------------------------------------------------------
oracle.install.crs.config.ignoreDownNodes=

#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=

#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
#------------------------------------------------------------------------------
oracle.installer.autoupdates.downloadUpdatesLoc=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges
# to be used for software updates.
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and atleast 2 chars.
#
# Example    : PROXY_PORT=25
#------------------------------------------------------------------------------
PROXY_PORT=

#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password
#------------------------------------------------------------------------------
PROXY_PWD=

#------------------------------------------------------------------------------
# Specify the proxy realm.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=

Those of you that are familiar with Oracle installations will pick up a couple of things I need to comment on here:

12cR2 PDB archive

In 12.1 we had the possibility to unplug a PDB by closing it and generating a .xml file that describes the PDB metadata required to plug the datafiles into another CDB.
In 12.2 we got an additional possibility to have this .xml file zipped together with the datafiles, for an easy transport. But that was not working for ASM files.
The latest Release Update, Oct 17 includes the patch that fixes this issue and is the occasion to show PDB archive.

Here is Oracle 12.2.0.1 with Oct 2017 (https://updates.oracle.com/download/26737266.html) applied (needs latest OPatch https://updates.oracle.com/download/6880880.html)
With a PDB1 pluggable database:

[oracle@VM106 ~]$ rman target /
 
Recovery Manager: Release 12.2.0.1.0 - Production on Wed Oct 18 16:16:41 2017
 
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
 
connected to target database: CDB1 (DBID=920040307)
 
RMAN> report schema;
 
using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name CDB1
 
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 810 SYSTEM YES /acfs/oradata/CDB1/datafile/o1_mf_system_dmrbv534_.dbf
3 540 SYSAUX NO /acfs/oradata/CDB1/datafile/o1_mf_sysaux_dmrbxvds_.dbf
4 70 UNDOTBS1 YES /acfs/oradata/CDB1/datafile/o1_mf_undotbs1_dmrbz8mm_.dbf
5 250 PDB$SEED:SYSTEM NO /acfs/oradata/CDB1/datafile/o1_mf_system_dmrc52tm_.dbf
6 330 PDB$SEED:SYSAUX NO /acfs/oradata/CDB1/datafile/o1_mf_sysaux_dmrc52t9_.dbf
7 5 USERS NO /acfs/oradata/CDB1/datafile/o1_mf_users_dygrpz79_.dbf
8 100 PDB$SEED:UNDOTBS1 NO /acfs/oradata/CDB1/datafile/o1_mf_undotbs1_dmrc52x0_.dbf
21 250 PDB1:SYSTEM YES /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_system_dygrqqq2_.dbf
22 350 PDB1:SYSAUX NO /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_sysaux_dygrqqs8_.dbf
23 100 PDB1:UNDOTBS1 YES +ASM1/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/DATAFILE/undotbs1.257.957719779
 
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 33 TEMP 32767 /acfs/oradata/CDB1/datafile/o1_mf_temp_dmrc4wlh_.tmp
2 64 PDB$SEED:TEMP 32767 /acfs/oradata/CDB1/pdbseed/temp012017-06-10_19-17-38-745-PM.dbf
3 64 PDB1:TEMP 32767 /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_temp_dygrqqsh_.dbf

I have moved one file to ASM to show that it is now handled correctly.

The pluggable database is closed, we can unplug it. Nothing changes with the unplug syntax except the extension of the file. If the file mentioned is a .pdb instead of a .xml then it is a PDB archive:

RMAN> alter pluggable database PDB1 unplug into '/var/tmp/PDB1.pdb';
 
RMAN> alter pluggable database PDB1 close;
 
Statement processed
 
RMAN> alter pluggable database PDB1 unplug into '/var/tmp/PDB1.pdb'
2> ;
 
Statement processed
 
RMAN> exit

Actually it is just a zip file with the datafiles, without the full path:

[oracle@VM106 ~]$ unzip -t /var/tmp/PDB1.pdb
Archive: /var/tmp/PDB1.pdb
testing: o1_mf_system_dygrqqq2_.dbf OK
testing: o1_mf_sysaux_dygrqqs8_.dbf OK
testing: undotbs1.257.957719779 OK
testing: /var/tmp/PDB1.xml OK
No errors detected in compressed data of /var/tmp/PDB1.pdb.

You can see that the ASM file is not different from the others.

I drop the pluggable database

RMAN> drop pluggable database PDB1 including datafiles;
 
using target database control file instead of recovery catalog
Statement processed
 

And plug back the PDB1, as PDB2, using the zip file:

RMAN> create pluggable database PDB2 using '/var/tmp/PDB1.pdb';
 
Statement processed
 
RMAN> report schema;
 
Report of database schema for database with db_unique_name CDB1
 
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 810 SYSTEM YES /acfs/oradata/CDB1/datafile/o1_mf_system_dmrbv534_.dbf
3 540 SYSAUX NO /acfs/oradata/CDB1/datafile/o1_mf_sysaux_dmrbxvds_.dbf
4 70 UNDOTBS1 YES /acfs/oradata/CDB1/datafile/o1_mf_undotbs1_dmrbz8mm_.dbf
5 250 PDB$SEED:SYSTEM NO /acfs/oradata/CDB1/datafile/o1_mf_system_dmrc52tm_.dbf
6 330 PDB$SEED:SYSAUX NO /acfs/oradata/CDB1/datafile/o1_mf_sysaux_dmrc52t9_.dbf
7 5 USERS NO /acfs/oradata/CDB1/datafile/o1_mf_users_dygrpz79_.dbf
8 100 PDB$SEED:UNDOTBS1 NO /acfs/oradata/CDB1/datafile/o1_mf_undotbs1_dmrc52x0_.dbf
24 250 PDB2:SYSTEM NO /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_system_dygwt1lh_.dbf
25 350 PDB2:SYSAUX NO /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_sysaux_dygwt1lm_.dbf
26 100 PDB2:UNDOTBS1 NO /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_undotbs1_dygwt1lo_.dbf
 
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 33 TEMP 32767 /acfs/oradata/CDB1/datafile/o1_mf_temp_dmrc4wlh_.tmp
2 64 PDB$SEED:TEMP 32767 /acfs/oradata/CDB1/pdbseed/temp012017-06-10_19-17-38-745-PM.dbf
4 64 PDB2:TEMP 32767 /acfs/oradata/CDB1/5BD3ED9D73B079D2E0536A4EA8C0967B/datafile/o1_mf_temp_dygwt1lp_.dbf

Here all files are there, created in the db_create_file_dest.

File name convert

When you create a pluggable database and you are not in OMF you need to add a FILE_NAME_CONVERT to convert from the source file names to destination file names. When the files are referenced by a .xml file, the .xml file references the path to the files as they were in the source database. If you move then, you can update the .xml file, or you can use SOURCE_FILE_NAME_CONVERT to mention the new place. With a .pdb archive, the .xml inside contains the original path, but this is not what will be used. The path of the .pdb itself is used, as if the files were unzipped at that place.

If you use Oracle-Managed-Files, don’t care about the file names and then you don’t need all those file name converts.

 

Cet article 12cR2 PDB archive est apparu en premier sur Blog dbi services.

Extending a Logical Volume Group

Introduction

Today I ran into the situation where I needed to extend a logical volume group so I could complete an installation. I’d already installed the Grid Infrastructure, but there wasn’t enough room remaining to install the Oracle kernel on the same device. This is for a test environment which was being built on a VM that had just been created, and performance is not the issue we’re looking at here, so installing the Grid Infrastructure and RDBMS on the same device is not a concern for me. I’ve been around the Oracle database for way too many years, but my sysadmin skills leave a lot to be desired, so I did what anyone in this situation would do – I googled “resize volume linux” and followed someone else’s instructions. </p />
</p></div>

    	  	<div class=

RMOUG Training Days 2018

So Training Days is coming up in two weeks.  You haven’t registered to attend?  How you feeling about that?

Rocky Mountain Oracle User Group, (RMOUG) has the largest Oracle user group grassroots conference each February.  For the 2018 year, we decided to shake it up with:

  • A new venue, The Westminster Westin Conference Center
  • A new management company, EPS Conference Management
  • A new Training Days Director, Komal Goyal
  • A new management software, Bizabo

https://i1.wp.com/dbakevlar.com/wp-content/uploads/2018/02/Wesstin.png?r... 300w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2018/02/Wesstin.png?r... 768w, https://i1.wp.com/dbakevlar.com/wp-content/uploads/2018/02/Wesstin.png?w... 1068w" sizes="(max-width: 650px) 100vw, 650px" data-recalc-dims="1" />

This was a huge undertaking and I have to say, I was worried we wouldn’t be able to pull it off, but it was time.  There’s nothing scarier than saying, “but this is the way we’ve always done it” and it wasn’t that there was anything wrong with how we’d done it, but there’s also something to be said for adding value to a great event by doing something new and taking a few risks.

I came back to supplement my tasks as president to help Komal, as it is a huge undertaking.  We signed on Penny Avril as the keynote last month, added a WIT luncheon and an AWS workshop.  All of these are pretty damn impressive. We’ve replaced so much, but the one thing we didn’t touch was the fantastic speakers and great content.

There are four workshops on the first day:

  • Mike Dietrich
  • Kent Graziano
  • John King
  • Peter Koletzke

There’s over 100 sessions over 2 1/2 days from some of the best speakers in the Oracle community.  If you’re interested in a certain track or topic, consider searching by filter.

It all sums up to be a fantastic and impressive event that will all happen in Westminster, CO in a couple weeks.  Are you going to really miss this much awesomeness?  </p />
</p></div>

    	  	<div class=

JAN18: Database 11gR2 PSU, 12cR1 ProactiveBP, 12cR2 RU

If you want to apply the latest patches (and you should), you can go to the My Oracle Support Recommended Patch Advisor. But sometimes it is not up-todate. For example, for 12.1.0.2 only the PSU is displayed and not the Proactive Bundle Patch, which is highly recommended. And across releases, the names have changed and can be misleading: PSU for 11.2.0.4 (no Proactive Bundle Patch except for Engineered Systems). 12.1.0.2 can have SPU, PSU, or Proactive BP but the latest is highly recommended, especially now that it includes the adaptive statistics patches. 12.2.0.1 introduce the new RUR and RU, the latest one being the one recommended.

To get things clear, there’s also the Master Note for Database Proactive Patch Program, with reference to one note per release. This blog post is my master note to link directly to the recommended updates for Oracle Database.

Master Note for Database Proactive Patch Program (Doc ID 756671.1)
https://support.oracle.com/epmos/faces/DocContentDisplay?id=756671.1

11.2.0.4 – PSU

Database 11.2.0.4 Proactive Patch Information (Doc ID 2285559.1)
https://support.oracle.com/epmos/faces/DocContentDisplay?id=2285559.1
Paragraph -> 11.2.0.4 Database Patch Set Update

Latest as of Q1 2018 -> 16-Jan-2018 11.2.0.4.180116 (Jan 2018) Database Patch Set Update (DB PSU) 26925576 (Windows: 26925576)

12.1.0.2  – ProactiveBP

Database 12.1.0.2 Proactive Patch Information (Doc ID 2285558.1)
https://support.oracle.com/epmos/faces/DocContentDisplay?id=2285558.1
Paragraph -> 12.1.0.2 Database Proactive Bundle Patches (DBBP)

Latest as of Q1 2018 -> 16-Jan-2018 12.1.0.2.180116 Database Proactive Bundle Patch (Jan 2018) 12.1.0.2.180116 27010930

12.2.0.1 – RU

Database 12.2.0.1 Proactive Patch Information (Doc ID 2285557.1)
https://support.oracle.com/epmos/faces/DocContentDisplay?id=2285557.1
Paragraph -> 12.2.0.1 Database Release Update (Update)

Latest as of Q1 2018 -> 16-Jan-2018 12.2.0.1.180116 (Jan 2018) Database Release Update 27105253 (Windows: 12.2.0.1.180116 WIN DB BP 27162931)
 

Don’t forget SQL Developer

In the 12c Oracle Home SQL Developer is installed, but you should update it to the latest version.
Download the following from http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
– The SQL Developer zip for ‘Other Platforms’, currently 17.4
– The SQLcl zip for ‘All Platforms’, currently 17.4

On the server, remove, or rename the original directory:
mv $ORACLE_HOME/sqldeveloper $ORACLE_HOME/sqldeveloper.orig

Unzip what you have downloaded:
unzip -d $ORACLE_HOME/ sqldeveloper-*-no-jre.zip
unzip -d $ORACLE_HOME/sqldeveloper sqlcl-*-no-jre.zip

I suggest to have a login.sql which sets the beautiful ansiconsole for SQLcl:

echo "set sqlformat ansiconsole" > $ORACLE_HOME/sqldeveloper/sqlcl/login.sql

On 12.2 you can run SQLcl just with ‘sql’ (and same arguments as sqlplus: / as sysdba or /nolog,…) because this is what is defined in $ORACLE_HOME/bin.
However, it sets the current working directory and i prefer to keep the current one as it is probably were I want to run scripts from.

Then I add the following aliases in .bashrc

alias sqlcl='JAVA_HOME=$ORACLE_HOME/jdk SQLPATH=$ORACLE_HOME/sqldeveloper/sqlcl bash $ORACLE_HOME/sqldeveloper/sqlcl/bin/sql'
alias sqldev='$ORACLE_HOME/sqldeveloper/sqldeveloper.sh'

When running SQL Developer for the first time you can create automatically a ‘/ as sysdba’ connection (but remember this is not a good practice to connect like this) and a connection for each user declared in the database: Right click on Connections and Create Local Connections

 

Cet article JAN18: Database 11gR2 PSU, 12cR1 ProactiveBP, 12cR2 RU est apparu en premier sur Blog dbi services.

Where in the World is Goth Girl- Cleveland Edition

I’ve returned from SQL Saturday Cleveland after presenting “Linux Performance Essentials for the SQL Server DBA”.  The event had 30% women speakers, which is incredible for a technical event.  I’m thrilled with the attendance and although my session went through a lot of Linux in an hour, people didn’t leave looking like their brains were going to explode, so mission accomplished.

I always feel like I’m walking around these events looking for the hidden cameras trying to record my astounded facial reactions. There is a significantly higher percentage of women speaking and in attendance and not a pencil skirt in sight.  Maybe its that the events are on the weekend vs. a weekday, but at SQL Summit, the week long conference in Seattle, the only dressing up I really observed was Halloween costumes and then the guys wearing kilts in support of the women at the event.  At SQL Saturday Cleveland, I had the surreal experience of feeling like the ONLY woman without a bright streak of color in her hair, (I’m in the middle of a redye process this week… :))  Erin Stellato, Wendy Pastrick, Holly Foley and others all had a flare of bright color in the midst of their natural hair color.  I have felt over-dressed at a couple SQL events, as they want me here for my brain, not for my appearance.

Saturday Schmaterday

SQL Saturdays are pretty cool events and incredibly successful for the Microsoft Data Platform community. Database specialists from each community get together to form a user group, which gives them the opportunity to network with each other, host events and learn from other.   They’ve already built a culture that expects to learn on the weekend, rarely taking business time off, but in exchange, the events are free with your PASS membership, (which is also free, I might add.) and seems to retain a consistent attendance due to this. Microsoft makes it a bit easier for the volunteers who run the user groups than Oracle, as they’ve created a platform, (for better or worse) that all user groups can use as a “home base” with resources, software, hosting and a dashboard to manage it all from.  There are a list of expectations that makes it easy for someone to launch a local user group, but they can also take it from there and build an event outside of the PASS organization if they wish to do so, it just is no longer part of PASS.  I’ve felt one of the biggest challenges for the Oracle user groups are that we’re constantly “reinventing the wheel” with each user group and a centralized resource location would be helpful.  I don’t think it would be possible to launch one on the Oracle side now, but the benefit of having one is apparent.

With that being said, the SQL Community also makes it easy to become a speaker with your PASS membership-  its easy to find events, to submit abstracts, promote and interact with the event on social media.  The SQL Family, (You can find #SQLFamily hashtag on Twitter) has a strong following

I think there’s a lot to be learned from all experiences and due to this, I’ve increased my involvement with the SQL Server user group in Denver as their new president.   When the board suggested it, I was a little hesitant, but as they displayed their desire to continue to perform the duties for each of their roles to the fullest, it became clear that it would make sense for me to become president, as most of what I do as president for the oracle user group, RMOUG, could be reused.  My biggest hurdle has been updating my SQL Saturday speaking schedule to not speak at the same time as a Saturday board meeting!

So let’s discuss what’s coming up on the calendar for the rest of February and all of March!

February

SQL Saturday Redmond, Redmond, WA- Feb. 10th

RMOUG Training Days, Denver, CO-  Feb. 20-22nd

Since I’m doing most of the planning for this event and also the president, I’m trying to give me some space for February…. </p />
</p></div>

    	  	<div class=