Wednesday, January 3, 2024

How to perform out-of-place patching of Oracle Restart (SIHA) 19c

1. Create empty directory for future Oracle Restart Home and unpack base grid installation along with required OPatch into it.

# mkdir -p /u01/app/19.21/grid

# chown grid:oinstall /u01/app/19.21/grid

# su - grid

$ cd /u01/app/19.21/grid

$ unzip -q /u01/app/oracle/install/19/SOLARIS.SPARC64_193000_grid_home.zip -d .

$ unzip -q /u01/app/oracle/install/19/p6880880_210000_SOLARIS64.zip -d .

2. Run installation using 'software only' mode. It's possible to perform silent installation using response file from previous installation, in this case set oracle.install.option=HA_SWONLY:

$ ./gridSetup.sh -silent -responseFile /u01/app/19.21/grid/gi_install.rsp -applyRU /u01/app/oracle/install/19/1921/35742441/35642822

Follow all postinstall steps (root.sh)

3. Run roothas.sh with -prepatch option.

If it requires clsecho file, copy it from previous Oracle Restart installation and edit the ORACLE_HOME variable at the beginning of it.

# /u01/app/19.21/grid/crs/install/roothas.sh -verbose -prepatch

At this step the whole Oracle Restart stack is being stopped. 

4. Run roothas.sh with -postinstall option.

# /u01/app/19.21/grid/crs/install/roothas.sh -verbose -postpatch -dstcrshome /u01/app/19.21/grid

At this step the whole Oracle Restart stack is being started from the newest Oracle Restart Home.

5. Set CRS=TRUE for the newest ORACLE_HOME and unset for the previous.

$ /u01/app/19.19/grid/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/u01/app/19.19/grid CRS=FALSE
 

$/ u01/app/19.21/grid/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/u01/app/19.21/grid CRS=TRUE

$ cat /u01/app/oraInventory/ContentsXML/inventory.xml

P.S. Check the owner of the newest ORACLE_HOME (must be root). If not, run roothas.sh with -lock option.

# /u01/app/19.21/grid/crs/install/roothas.sh -verbose -lock

4 comments:

  1. Thanks - great information!

    Where you say "It's possible to perform silent installation using response file from previous installation" do you have example of the response file - for example can you share your file /u01/app/19.21/grid/gi_install.rsp

    Also, when you say "If it requires clsecho file, copy it from previous Oracle Restart installation and edit the ORACLE_HOME variable at the beginning of it."

    What is a clsecho file? Do you have an example to share?

    Thank you!

    ReplyDelete
    Replies
    1. Welcome !

      1. The file is here : https://drive.google.com/file/d/1cFJxwu-M9_EASxvPHxj8r8ePYGbg3-We/view?usp=sharing

      As you perform out-of-place SIHA upgrade, you can find the same on your own system, just look at $OLD_ORACLE_HOME/install/response directory, it's name starts with 'grid_' prefix and contains installation/upgrade date inside.

      2. clsecho file is a kind of wrapper of clsecho.bin file, both are located in ORACLE_HOME/bin directory and used in other GI scripts. And what I meant is that you could have potentially received messages like the following while running roothas.sh script :

      /u01/app/19.21/grid/crs/install/roothas.sh[42]: /u01/app/19.21/grid/bin/clsecho: not found [No such file or directory]

      It means that clsecho file is absent and doesn't exist in ORACLE_HOME/bin directory, but it's needed for successfully run of roothas.sh script. To fix it, copy it from previous OLD_ORACLE_HOME (from which you're upgrading) to the newest (edit ORA_CRS_HOME and CRF_HOME variables in the 'Main' section of it) and rerun roothas.sh :

      # cp /u01/app/19.19/grid/bin/clsecho /u01/app/19.21/grid/bin/
      # vi /u01/app/19.21/grid/bin/clsecho

      Regards,
      Dmitry

      Delete
  2. Hi

    Which commands are run as oracle user and which commands are run as root user?
    Or are all commands run as root ?

    Best regards,
    Campbell

    ReplyDelete
    Replies
    1. Hi, if you see the '#' at the beginning of the command, then it is an example for root user. When the example starts with '%' - it's for grid user (grid is the user who owns GI software, it can be oracle as well)

      Delete