Blog | Pythian

How to prepare a response file for a grid 18c silent upgrade

Written by Michael Dinh | Mar 7, 2019 5:00:00 AM

Due to security and complexity of the environment, the option to use Graphical User Interface (GUI) is not always available. Upgrade operations will need to be performed from the command line interface (CLI).

Navigating Oracle Upgrades Without a GUI

Performing upgrades via the CLI is a standard reality for many DBAs. Before diving into the configuration files, you must ensure the underlying OS permissions are correctly aligned.

Verifying User and Group Assignments

Determine groups assigned to grid and oracle user

[oracle@racnode-dc1-1 ~]$ id grid uid=54320(grid) gid=54321(oinstall) groups=54321(oinstall),54318(asmdba),54319(asmoper),54320(asmadmin),54322(dba)  [oracle@racnode-dc1-1 ~]$ id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54318(asmdba),54320(asmadmin),54322(dba),54323(backupdba),54324(oper),54325(dgdba),54326(kmdba) 

The Challenge of Response File Configuration

Create response file gridsetup_upgrade.rsp from gridsetup.rsp. There are 667 lines from gridsetup.rsp and it's not efficient to view the entire file to identify modifications.

[oracle@racnode-dc1-1 18cLinux]$ wc -l gridsetup.rsp 667 gridsetup.rsp 

Method 1: Filtering with egrep and awk

One method to identify change is to strip out comments and empty values to see exactly what has been configured:

Bash
[oracle@racnode-dc1-1 18cLinux]$ egrep -v "^#" gridsetup_upgrade.rsp | awk -F'=' '$2'  oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v18.0.0 INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=UPGRADE ORACLE_BASE=/u01/app/oracle oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.scanType=LOCAL_SCAN oracle.install.crs.config.ClusterConfiguration=STANDALONE oracle.install.crs.config.configureAsExtendedCluster=false oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.ignoreDownNodes=false 

Method 2: Utilizing sdiff for Quick Comparisons

Another option is to use sdiff; however, a disadvantage is that it does not provide a version for a response file:

[oracle@racnode-dc1-1 18cLinux]$ sdiff -iEZbWBst -w 120 gridsetup.rsp gridsetup_upgrade.rsp  INVENTORY_LOCATION=                                  | INVENTORY_LOCATION=/u01/app/oraInventory oracle.install.option=                               | oracle.install.option=UPGRADE ORACLE_BASE=                                         | ORACLE_BASE=/u01/app/oracle oracle.install.asm.OSDBA=                            | oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=                           | oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=                            | oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.scanType=                  | oracle.install.crs.config.scanType=LOCAL_SCAN oracle.install.crs.config.ClusterConfiguration=      | oracle.install.crs.config.ClusterConfiguration=STANDALONE oracle.install.crs.config.configureAsExtendedCluster=| oracle.install.crs.config.configureAsExtendedCluster=false oracle.install.crs.config.gpnp.configureGNS=         | oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.ignoreDownNodes=           | oracle.install.crs.config.ignoreDownNodes=false 

Understanding the sdiff switches used:

  • -i, --ignore-case
  • -E, --ignore-tab-expansion
  • -Z, --ignore-trailing-space
  • -b, --ignore-space-change
  • -W, --ignore-all-space
  • -B, --ignore-blank-lines
  • -s, --suppress-common-lines
  • -t, --expand-tabs (expand tabs to spaces in output)
  • -w, --width=NUM

Conclusion

In conclusion, the steps outlined should provide for a more efficient method to provide only pertinent changes for the response file.

SQL Server Database Consulting Services

Ready to future-proof your SQL Server investment?