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:

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:

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):

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:

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:

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:

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:

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

  • To protect my customer’s identity, I’ve chosen a host name of devdb01.acme.com.au. Clearly that is not the real host name! 🙂
  • This is a standalone server software installation only, which is why I’ve chosen “CRS_SWONLY” for the installation option. The other possibility in this environment is to use “HA_CONFIG”, but that does both the installation and the configuration, which I don’t want in this particular case.
  • There will be warnings generated by the group names I have chosen. These are warnings only, and I have chosen these groups to match the existing Production environment.
  • There will also be a warning that the software should be installed outside the Oracle base directory. Again, this is a warning only and I’ve chosen to ignore it to match the Production environment.
  • Likewise, there will be a warning about the Central Inventory location that I have also ignored.

OK, let’s run the installer with that response file. I’ve added the -showProgress flag to watch the installation proceed:

Next, I ran the orainstRoot.sh and root.sh files. In the output of root.sh, it said to check a log script for the results, which also told me to run another script, so I did that as well (the perl command in the output below):

So there we have it – Grid Infrastructure done! In the next post, I’ll move on to the RDBMS installation.

Pete

After 22 years of working at Oracle in just about every role except Marketing and Support, I am now working as a Senior Managed Services Consultant with Data Intensity, specializing in Oracle Database technology, High Availability and Disaster Recovery solutions. I am also a member of the OakTable Network, and have presented at RMOUG Training Days, Hotsos Symposia, Oracle OpenWorld conferences, and other user group events. I have co-authored the Expert Oracle Enterprise Manager 12c and Practical Oracle Database Appliance books published by Apress, and am one of the authors of the Building Database Clouds in Oracle Database 12c book published by Addison Wesley.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.