This is the part 2 of Nutanix Era blogs related to the use with Oracle databases. Before using Nutanix Era with Oracle and be able to provision oracle databases, we need to create a template VM. To do so, we will need to use prism. This template VM will only be used as a reference each time we will provision a database mainly to get the operation system and the Oracle environment. The cpu cores and memory resource to allocate to the VM hosting the database we want to provision will be configured independently of the configuration of this VM template. The template VM can even later be shutdown once registered in Nutanix Era.

For more information on Nutanix products, I would encourage you to visit Nutanix website.

Connecting to prism

Once logged on the Nutanix cluster trial page, launch Nutanix Clusters :









Click on your cluster :







And then click on the button “Go to Prism Element”










Here you will have to login with the admin user created during the deployment :









Creating physical VM

From the prism VM menu, we will create a new VM specifying mainly the number of cores and the memory. Knowing it is a template, we do not need a lot of resource. This is done as following :


















Creating Image Configuration

We will install the VM template with Oracle Linux 8.4. Therefore we need to first upload the OS image into prism. This is achieved using the “Image Configuration” part from the “Settings” menu :













From the task menu we can check the progress :





Once completed the image has been uploaded and is ready to be used :






Install OS on the VM template

Now we need to turn our VM template on, with a right click on the VM :







Once the VM is started, we can launch the console, still with a right click on the VM :







And we can mount our ISO image :




















And reset the VM :

















And this will then be a normal linux installation :

















Oracle binaries 19.3 installation

Once the VM is installed and up and running with the linux OS, you might certainly have to configure your AWS Cloud to be able to ssh the VM template. This steps is not covered here, as fully related to AWS Cloud operations.

We will install the needed prerequirement package :

[root@Nutanix_OracleDB_template ~]# rpm -qa | grep oracle-database-preinstall-19c-1.0-2.el8.x86_64
oracle-database-preinstall-19c-1.0-2.el8.x86_64


And create the directory for the oracle binaries :

[oracle@Nutanix_OracleDB_template ~]$ mkdir -p /u01/app/oracle/product/19.12.0/db_0_210701
[oracle@Nutanix_OracleDB_template ~]$ cd /u01/app/oracle/product/19.12.0/db_0_210701


We will then download following files from Oracle website :
LINUX.X64_193000_db_home.zip
p32900021_190000_Linux-x86-64.zip (COMBO OF OJVM RU COMPONENT 19.12.0.0.210720 + DB RU 19.12.0.0.210720)

We will extract Oracle binaries 19.3 :

[oracle@Nutanix_OracleDB_template ~]$ cd /u01/app/oracle/product/19.12.0/db_0_210701/
[oracle@Nutanix_OracleDB_template db_0_210701]$ unzip LINUX.X64_193000_db_home.zip


We will create following response file :

[oracle@Nutanix_OracleDB_template install]$ pwd
/u01/app/oracle/product/19.12.0/db_0_210701/install
[oracle@Nutanix_OracleDB_template install]$ vi rdbms_install_19300.rsp
[oracle@Nutanix_OracleDB_template install]$ cat rdbms_install_19300.rsp
#------------------------------------------------------------------------------
# Do not change the following system generated value.
#------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0

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

#-------------------------------------------------------------------------------
# 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 complete path of the Oracle Home.
#-------------------------------------------------------------------------------
ORACLE_HOME=/u01/app/oracle/product/19.12.0/db_0_210701

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

#-------------------------------------------------------------------------------
# Specify the installation edition of the component.
#
# The value should contain only one of these choices.
#   - EE     : Enterprise Edition
#   - SE2    : Standard Edition 2
#-------------------------------------------------------------------------------
oracle.install.db.InstallEdition=EE

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

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

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

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

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

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


And run the installer :

[oracle@Nutanix_OracleDB_template db_0_210701]$ ./runInstaller -silent -responseFile /u01/app/oracle/product/19.12.0/db_0_210701/install/rdbms_install_19300.rsp
Launching Oracle Database Setup Wizard...

[WARNING] [INS-08101] Unexpected error while executing the action at state: 'supportedOSCheck'
   CAUSE: No additional information available.
   ACTION: Contact Oracle Support Services or refer to the software manual.
   SUMMARY:
       - java.lang.NullPointerException
Moved the install session logs to:
 /u01/app/oraInventory/logs/InstallActions2021-08-05_11-41-37AM


The following error is coming from the fact that although Oracle Linux 8.4 is supported for installation of 19.3 release, this OS version was at that time not available.

See following Doc Id :
Requirements for Installing Oracle Database/Client 19c on OL8 or RHEL8 64-bit (x86-64) (Doc ID 2668780.1)

Since 19c(19.3) is already released a while ago,It does not contain Pre-req checks specific to OL /RHEL 8. Workaround solution is to set first the CV_ASSUME_DISTID variable to a previous release.

We can then execute again the installation which will be successful :

[oracle@Nutanix_OracleDB_template db_0_210701]$ export CV_ASSUME_DISTID=OL7
[oracle@Nutanix_OracleDB_template db_0_210701]$ ./runInstaller -silent -responseFile /u01/app/oracle/product/19.12.0/db_0_210701/install/rdbms_install_19300.rsp
Launching Oracle Database Setup Wizard...

[WARNING] [INS-32047] The location (/u01/app/oraInventory) specified for the central inventory is not empty.
   ACTION: It is recommended to provide an empty location for the inventory.
[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. installActions2021-08-05_12-04-18PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: installActions2021-08-05_12-04-18PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/oracle/product/19.12.0/db_0_210701/install/response/db_2021-08-05_12-04-18PM.rsp

You can find the log of this install session at:
 /tmp/InstallActions2021-08-05_12-04-18PM/installActions2021-08-05_12-04-18PM.log


As a root user, execute the following script(s):
	1. /u01/app/oraInventory/orainstRoot.sh
	2. /u01/app/oracle/product/19.12.0/db_0_210701/root.sh

Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes:
[Nutanix_OracleDB_template]
Execute /u01/app/oracle/product/19.12.0/db_0_210701/root.sh on the following nodes:
[Nutanix_OracleDB_template]


Successfully Setup Software with warning(s).
Moved the install session logs to:
 /u01/app/oraInventory/logs/InstallActions2021-08-05_12-04-18PM


We can now execute both root scripts :

root@Nutanix_OracleDB_template ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.

[root@Nutanix_OracleDB_template ~]# /u01/app/oracle/product/19.12.0/db_0_210701/root.sh
Check /u01/app/oracle/product/19.12.0/db_0_210701/install/root_Nutanix_OracleDB_template_2021-08-05_14-14-35-159856510.log for the output of root script
[root@Nutanix_OracleDB_template ~]# more /u01/app/oracle/product/19.12.0/db_0_210701/install/root_Nutanix_OracleDB_template_2021-08-05_14-14-35-159856510.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19.12.0/db_0_210701
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Oracle Trace File Analyzer (TFA) is available at : /u01/app/oracle/product/19.12.0/db_0_210701/bin/tfactl


Oracle Patch 32900021 (COMBO OF OJVM RU COMPONENT 19.12.0.0.210720 + DB RU 19.12.0.0.210720) installation

Check current version :

[oracle@Nutanix_OracleDB_template OPatch]$ ./opatch lsinv | grep -i description
ARU platform description:: Linux x86-64
Patch description:  "OCW RELEASE UPDATE 19.3.0.0.0 (29585399)"
Patch description:  "Database Release Update : 19.3.0.0.190416 (29517242)"
[oracle@Nutanix_OracleDB_template OPatch]$


Check last opatch Version :

[oracle@Nutanix_OracleDB_template OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.


We need version 24. We will download version 25 and install it :

[oracle@Nutanix_OracleDB_template OPatch]$ cd $ORACLE_HOME
[oracle@Nutanix_OracleDB_template db_0_210701]$ mv OPatch OPatch.v.17
[oracle@Nutanix_OracleDB_template db_0_210701]$ cp -p ~/p6880880_210000_Linux-x86-64.zip .
[oracle@Nutanix_OracleDB_template db_0_210701]$ unzip p6880880_210000_Linux-x86-64.zip
Archive:  p6880880_210000_Linux-x86-64.zip
   creating: OPatch/
  inflating: OPatch/README.txt
  inflating: OPatch/datapatch
  ...
  ...
  ...


Check opatch version :

[oracle@Nutanix_OracleDB_template db_0_210701]$ cd OPatch
[oracle@Nutanix_OracleDB_template OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.25

OPatch succeeded.


We will transfer the needed patch and unzip it :

[oracle@Nutanix_OracleDB_template ~]$ mkdir /u01/app/patching
[oracle@Nutanix_OracleDB_template ~]$ mv p32900021_190000_Linux-x86-64.zip /u01/app/patching/
[oracle@Nutanix_OracleDB_template ~]$ ls
sqldb360-19.4
[oracle@Nutanix_OracleDB_template ~]$ cd /u01/app/patching/
[oracle@Nutanix_OracleDB_template patching]$ ls -l
total 1489976
-rw-r--r--. 1 oracle oinstall 1525734197 Aug  5 14:59 p32900021_190000_Linux-x86-64.zip
[oracle@Nutanix_OracleDB_template patching]$ unzip p32900021_190000_Linux-x86-64.zip
...
...
...

[oracle@Nutanix_OracleDB_template patching]$ ls
32900021  p32900021_190000_Linux-x86-64.zip  PatchSearch.xml

[oracle@Nutanix_OracleDB_template patching]$ tree -d -L 1 32900021
32900021
├── 32876380
└── 32904851

2 directories
[oracle@Nutanix_OracleDB_template patching]$


We will do some first conflict checks for both patches :

[oracle@Nutanix_OracleDB_template patching]$ cd 32900021/32876380/
[oracle@Nutanix_OracleDB_template 32876380]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph .
Oracle Interim Patch Installer version 12.2.0.1.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19.12.0/db_0_210701
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.12.0/db_0_210701/oraInst.loc
OPatch version    : 12.2.0.1.25
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-48-33PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.
[oracle@Nutanix_OracleDB_template 32876380]$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -ph ./
Oracle Interim Patch Installer version 12.2.0.1.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19.12.0/db_0_210701
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.12.0/db_0_210701/oraInst.loc
OPatch version    : 12.2.0.1.25
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-49-05PM_1.log

Invoking prereq "checksystemspace"

Prereq "checkSystemSpace" passed.

OPatch succeeded.
[oracle@Nutanix_OracleDB_template 32876380]$ cd ../32904851/
[oracle@Nutanix_OracleDB_template 32904851]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph .
Oracle Interim Patch Installer version 12.2.0.1.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19.12.0/db_0_210701
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.12.0/db_0_210701/oraInst.loc
OPatch version    : 12.2.0.1.25
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-49-42PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.
[oracle@Nutanix_OracleDB_template 32904851]$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -ph ./
Oracle Interim Patch Installer version 12.2.0.1.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19.12.0/db_0_210701
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.12.0/db_0_210701/oraInst.loc
OPatch version    : 12.2.0.1.25
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-49-51PM_1.log

Invoking prereq "checksystemspace"

Prereq "checkSystemSpace" passed.

OPatch succeeded.
[oracle@Nutanix_OracleDB_template 32904851]$


And now finally we can patch our Oracle binaries 19.3 with both 19.12 patches :

[oracle@Nutanix_OracleDB_template 32904851]$ cd ../32876380/
[oracle@Nutanix_OracleDB_template 32876380]$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19.12.0/db_0_210701
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.12.0/db_0_210701/oraInst.loc
OPatch version    : 12.2.0.1.25
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-51-02PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   32876380

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/19.12.0/db_0_210701')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '32876380' to OH '/u01/app/oracle/product/19.12.0/db_0_210701'

Patching component oracle.javavm.server, 19.0.0.0.0...

Patching component oracle.javavm.server.core, 19.0.0.0.0...

Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...

Patching component oracle.rdbms, 19.0.0.0.0...

Patching component oracle.javavm.client, 19.0.0.0.0...
Patch 32876380 successfully applied.
Log file location: /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-51-02PM_1.log

OPatch succeeded.
[oracle@Nutanix_OracleDB_template 32876380]$ cd ../32904851/
[oracle@Nutanix_OracleDB_template 32904851]$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.25
Copyright (c) 2021, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19.12.0/db_0_210701
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.12.0/db_0_210701/oraInst.loc
OPatch version    : 12.2.0.1.25
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-51-54PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   32904851

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/19.12.0/db_0_210701')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '32904851' to OH '/u01/app/oracle/product/19.12.0/db_0_210701'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.perlint, 5.28.1.0.0...

Patching component oracle.rdbms.locator, 19.0.0.0.0...

Patching component oracle.rdbms.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.util, 19.0.0.0.0...

Patching component oracle.rdbms, 19.0.0.0.0...

Patching component oracle.assistants.acf, 19.0.0.0.0...

Patching component oracle.assistants.deconfig, 19.0.0.0.0...

Patching component oracle.assistants.server, 19.0.0.0.0...

Patching component oracle.buildtools.rsf, 19.0.0.0.0...

Patching component oracle.ctx, 19.0.0.0.0...

Patching component oracle.dbjava.ic, 19.0.0.0.0...

Patching component oracle.dbjava.jdbc, 19.0.0.0.0...

Patching component oracle.dbjava.ucp, 19.0.0.0.0...

Patching component oracle.duma, 19.0.0.0.0...

Patching component oracle.javavm.client, 19.0.0.0.0...

Patching component oracle.ldap.owm, 19.0.0.0.0...

Patching component oracle.ldap.rsf, 19.0.0.0.0...

Patching component oracle.marvel, 19.0.0.0.0...

Patching component oracle.network.rsf, 19.0.0.0.0...

Patching component oracle.oracore.rsf, 19.0.0.0.0...

Patching component oracle.precomp.common.core, 19.0.0.0.0...

Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...

Patching component oracle.rdbms.deconfig, 19.0.0.0.0...

Patching component oracle.rdbms.oci, 19.0.0.0.0...

Patching component oracle.rhp.db, 19.0.0.0.0...

Patching component oracle.sdo, 19.0.0.0.0...

Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...

Patching component oracle.sqlplus, 19.0.0.0.0...

Patching component oracle.sqlplus.ic, 19.0.0.0.0...

Patching component oracle.wwg.plsql, 19.0.0.0.0...

Patching component oracle.odbc, 19.0.0.0.0...

Patching component oracle.rdbms.drdaas, 19.0.0.0.0...

Patching component oracle.xdk.parser.java, 19.0.0.0.0...

Patching component oracle.dbtoolslistener, 19.0.0.0.0...

Patching component oracle.ctx.atg, 19.0.0.0.0...

Patching component oracle.javavm.server, 19.0.0.0.0...

Patching component oracle.ldap.security.osdt, 19.0.0.0.0...

Patching component oracle.rdbms.hs_common, 19.0.0.0.0...

Patching component oracle.ons, 19.0.0.0.0...

Patching component oracle.precomp.rsf, 19.0.0.0.0...

Patching component oracle.oraolap.api, 19.0.0.0.0...

Patching component oracle.ons.ic, 19.0.0.0.0...

Patching component oracle.rdbms.install.common, 19.0.0.0.0...

Patching component oracle.xdk, 19.0.0.0.0...

Patching component oracle.rdbms.dv, 19.0.0.0.0...

Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...

Patching component oracle.rdbms.scheduler, 19.0.0.0.0...

Patching component oracle.rdbms.lbac, 19.0.0.0.0...

Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...

Patching component oracle.rdbms.rman, 19.0.0.0.0...

Patching component oracle.oraolap, 19.0.0.0.0...

Patching component oracle.rdbms.crs, 19.0.0.0.0...

Patching component oracle.dbdev, 19.0.0.0.0...

Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...

Patching component oracle.network.client, 19.0.0.0.0...

Patching component oracle.xdk.xquery, 19.0.0.0.0...

Patching component oracle.ldap.client, 19.0.0.0.0...

Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...

Patching component oracle.ctx.rsf, 19.0.0.0.0...

Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...

Patching component oracle.xdk.rsf, 19.0.0.0.0...

Patching component oracle.network.listener, 19.0.0.0.0...

Patching component oracle.ovm, 19.0.0.0.0...

Patching component oracle.sdo.locator, 19.0.0.0.0...

Patching component oracle.mgw.common, 19.0.0.0.0...

Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...

Patching component oracle.precomp.common, 19.0.0.0.0...

Patching component oracle.precomp.lang, 19.0.0.0.0...

Patching component oracle.jdk, 1.8.0.201.0...
Patch 32904851 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [32904851].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/19.12.0/db_0_210701/cfgtoollogs/opatch/opatch2021-08-05_15-51-54PM_1.log

OPatch succeeded.


Configure sudo access for oracle user

This is a mandatory step to be able to register our VM template into ERA.

[root@Nutanix_OracleDB_template ~]# echo "%oinstall ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/oinstall


Checking sudo permissions for oracle user :

oracle@Nutanix_OracleDB_template ~]$ sudo pvs
  PV         VG        Fmt  Attr PSize  PFree
  /dev/sda3  vgroot-lv lvm2 a--  79.00g 4.00m


So, we can confirm that the sudo access are working for oracle user.

Create sshkey for oracle user

We will create ssh key for oracle user :

[oracle@Nutanix_OracleDB_template ~]$ cd .ssh
[oracle@Nutanix_OracleDB_template .ssh]$ ls -ltrh
total 4.0K
-rw-r--r--. 1 oracle oinstall 176 Aug  5 10:30 known_hosts
[oracle@Nutanix_OracleDB_template .ssh]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:VbABMrlBAmHovI7uXvi+DOagg3mQTUB1o5soLKpoxb0 oracle@Nutanix_OracleDB_template
The key's randomart image is:
+---[RSA 3072]----+
|.o=+.++...o..    |
|o.  o.+o   +     |
|o. .   o  o      |
|.oo o .  .       |
|o*oo.   S        |
|*.oo .           |
|**..  .          |
|%o*  E           |
|OB.=.            |
+----[SHA256]-----+
[oracle@Nutanix_OracleDB_template .ssh]$ ls -ltrh
total 12K
-rw-r--r--. 1 oracle oinstall  176 Aug  5 10:30 known_hosts
-rw-r--r--. 1 oracle oinstall  586 Aug 11 09:05 id_rsa.pub
-rw-------. 1 oracle oinstall 2.6K Aug 11 09:05 id_rsa


And add public key in the authorized_keys :

[oracle@Nutanix_OracleDB_template .ssh]$ cat id_rsa.pub >> authorized_keys


Register VM template into Era

Now that our VM template is ready we will log into Nutanix Era with https and admin Era user :












We will need to go in the “Database Server VMs” menu, and choose Oracle :












We will then Register our VM template with the Register button :












And we will provide all needed information :

  • IP Address of the VM template : The VM is recognized and provided in the list of the VM that was not so far registered.
  • Listener Port : We are using default one.
  • A description.
  • The Era Drive User which should have sudo permissions and will be used to mount partition and take snapshots, in our installation oracle user.
  • The Oracle Database Home : The directory where we installed Oracle binaries on the VM template.
  • Grid Infrastructure Home : We are not using any grid architecture, but this would be possible.
  • The Credentials for oracle user either through password or ssh keys. We use ssh keys and provide the private keys.

VM template is recognized :












We will fill all needed information :












The VM could be registered successfully. We need to install some missing packages for further use. We will do this on the OS side using yum command.












Installation of missing packages :

[root@Nutanix_OracleDB_template ~]# yum install gcc
[root@Nutanix_OracleDB_template ~]# yum install zip
[root@Nutanix_OracleDB_template ~]# yum install rsync
[root@Nutanix_OracleDB_template ~]# yum install sshpass
[root@Nutanix_OracleDB_template ~]# yum install lsof


Conclusion

As for now we are ready to go and have all we need in order to provision oracle databases with Nutanix Era inside the Nutanix Cluster. This will be explained in a next blog.