Down the memory lane
Although sometimes I think I have been working with Oracle Grid Infrastructure since it exists, sometimes my memory does not work well. I still like to go through the Oracle RAC family history from time to time:
- 8i -> no Oracle cluster did exist. RAC was leveraging 3rd party clusters (like Tru Cluster, AIX HACMP, Sun Cluster)…
- 9i -> if I remember well, Oracle hired some developers of Tru Cluster after the acquisition of Compaq by HP. Oracle CRS was born and was quite similar to Tru Cluster. (The commands were almost the same: crs_stat instead of caa_stat, etc)
- 10g -> Oracle re-branded CRS to Clusterware
- 11g -> With the addition of ASM (and other components), Oracle created the concept of “Grid Infrastructure”, composed by Clusterware and additional products. All the new versions still use the name Grid Infrastructure and new products have been added through the years (ACFS, RHP, QoS …)
But I have missing souvenirs. For example, I cannot remember having ever upgraded an Oracle Cluster from 9i to 10g or from 10g to 11g. At that time I was working for several customers, and every new release was installed on new Hardware.
My first, real upgrade (as far as I can remember) was from 11gR2 to 12c, where the upgrade process was a nice, OUI-driven, out-of-place install.
The process was (still is 🙂 ) nice and smooth:
- The installer copies, prepares and links the binaries on all the nodes in a new Oracle Home
- The upgrade process is rolling: the first node puts the cluster in upgrade mode
- The last node does the final steps and exists the cluster from the upgrade mode.
This is about Upgrading to a new release. But what about patching?
Patching of Grid Infrastructure has always been in-place and, I will not hide it, quite painful.
If you wanted to patch a Grid Infrastructure before release 12cR2, you had to:
- read the documentation carefully and check for possible conflicts
- backup the Grid Home
- copy the patch on the host
- evacuate all the services and databases from the cluster node that you want to patch
- patch the binaries (depending on the versions and patches, this might be easy with opatchauto or quite painful with manual unlocking/locking and manual opatch steps)
- restart/relocate the services back on the node
- repeat the tasks for every node
The disadvantages of in-place patching are many:
- Need to stage the patch on every node
- Need to repeat the patching process for every node
- No easy rollback (some bad problems might lead to deconfiguring the cluster from one node and then adding it back to the cluster)
Out-of-place patching is proven to be much a better solution. I am doing it regularly since a while for Oracle Database homes and I am very satisfied with it. I am implementing it at CERN as well, and it will unlock new levels of server consolidation 🙂
I have written a blog series here, and presented about it a few times.
But out-of-place patching for Grid Infrastructure is VERY recent.
Oracle 12cR2 introduced out-of-place patching as a new feature of opatchauto.
This MOS document explains it quite in detail:
Grid Infrastructure Out of Place ( OOP ) Patching using opatchauto (Doc ID 2419319.1)
The process is the following:
- a preparation process clones the active Oracle Home on the current node and patches it
- a switch process switches the active Oracle Home from the old one to the prepared clone
- those two phases are repeated for each node
The good thing is that the preparation can be done in advance on all the nodes and the switch can be triggered only if all the clones are patched successfully.
However, the staging of the patch, the cloning and patching must still happen on every node, making the concept of golden images quite useless for patching.
It is worth to mention, at this point, that Grid Infrastructure Golden Images ARE A THING, and that they have been introduced by Rapid Home Provisioning release 12cR2, where cluster automatic provisioning has been included as a new feature.
I have discussed about Rapid Home provisioning itself here, but I will ad a couple of thoughts in the next paragraph.
18c and the brand new Independent local-mode Automaton
I have been early tester of the Rapid Home Provisioning product, when it has been released with Oracle 18.104.22.168. I have presented about it at UKOUG and as a RAC SIG webinar.
I liked the product A LOT, despite a few bugs due to the initial release. The concept of out-of-placing patching that RHP uses is the best one, in my opinion, to cope with frequent patches and upgrades.
Now, with Oracle 18c, the Rapid Home Provisioning Independent Local-mode Automaton comes to play. There is not that much documentation about it, even in the Oracle documentation, but a few things are clear:
- The Independent local-mode automaton comes without additional licenses as it is not part of the RHP Server/Client infrastructure
- It is 100% local to the cluster where it is used
- Its main “job” is to allow moving Grid Infrastructure Homes from a non-patched version to an out-of-place patched one.
$ rhpctl move gihome –sourcehome Oracle_home_path -destinationhome Oracle_home_path
I will not disclore more here, as the rest of this blog series is focused on this new product 🙂
Stay tuned for details, examples and feedback from its usage at CERN 😉