“The software home is already registered in the central inventory ?” A failed attempt to apply RU on 19c Grid Infrastructure home before it is configured

Photo by Kelly Sikkema on Unsplash

I recently came accross a new (to me) error when trying to upgrade Grid Infrastructure on my lab, a 2-node 18.6 RAC cluster. To upgrade Grid Infrastructure directly to 19c with the latest Release Update 19.4, I downloaded the 19.3 base release and tried to apply RU 19.4 before launching the upgrade :

# /u01/app/19_4_0_0/grid/gridSetup.sh -silent -applyRU /staging/path/29708769

(Please refer to Doc ID 1410202.1 for the full explanation.)

Unfortunately, I had my head in the clouds (pun intended), and the node on which the patch was running encountered a problem and the session got killed.

Continue reading ““The software home is already registered in the central inventory ?” A failed attempt to apply RU on 19c Grid Infrastructure home before it is configured”
Advertisements

Exadata Cloud at Customer : Drill down into Cloud Tooling RPM content

Photo by Cassie Matias on Unsplash

On one of my Exadata Cloud at Customer system, I recently had an issue which required to check exactly which files were updated when upgrading the cloud-specific tooling included on Exadata Cloud at Customer, also know as dbaastools_exa. I needed to know if a configuration file had been overwritten or not, when upgrading dbaastools_exa. My knowledge in RPM packages being very limited, I did some research and here is what I found :

Continue reading “Exadata Cloud at Customer : Drill down into Cloud Tooling RPM content”

Exadata Cloud at Customer : Automate CDB lifecycle with REST APIs in PL/SQL – Part 2

(Photo by Francesco Gallarotti, on Unsplash)

Following the first part of this blog serie, here are some new useful functions to automate CDB lifecycle on Exadata Cloud at Customer. Please make sure to read the previous post first, as it contains all the rudiments to build the PL/SQL package.

Continue reading “Exadata Cloud at Customer : Automate CDB lifecycle with REST APIs in PL/SQL – Part 2”

Exadata Cloud at Customer : Automate CDB lifecycle with REST APIs in PL/SQL – Part 1

(Photo by Michael Fertig, on Unsplash)

Exadata Cloud at Customer offers a very convenient method to manage your Oracle Database Exadata Cloud Services : REST APIs \o/

I am currently working on a PL/SQL package to interact with Exadata instances, from a central administrative database. Let’s see, step by step, what are the prerequisite to achieve this goal. (Note : I am currently learning PL/SQL, and I use Trivadis PL/SQL Cop, especially the very useful plugin for SQL Developer.)

Continue reading “Exadata Cloud at Customer : Automate CDB lifecycle with REST APIs in PL/SQL – Part 1”

Exadata Cloud at Customer : Grid Infrastructure patch under the hood

(Photo by Junaid Ur Rehman Jamil Ahmed, on Unsplash)

Following up with this blog post, here is a quick overview of what is performed on Exadata Cloud at Customer nodes when a Grid Infrastructure patching is launched via the web interface, the Oracle Cloud control plane.

The whole patch process is not that different from the precheck process. Most of the steps are similar, and of course, the main difference is that the Opatch command actually … patches the Grid Infrastructure 😉

Let’s launch the patching process with a simple click on the Oracle Cloud control plane (sorry for the Fren-Glish screenshots …) :

Continue reading “Exadata Cloud at Customer : Grid Infrastructure patch under the hood”

Exadata Cloud at Customer : Grid Infrastructure patch precheck under the hood

(Photo by Manu Franco, on Unsplash)

I am now exploring the brand new Grid Infrastructure patching method for Exadata Cloud at Customer. With Exadata Cloud at Customer version 18.1.4.4, it is now possible to patch Grid Infrastructure with a few clicks in the GUI. Let’s see exactly which steps are performed.

First, with my preferred method (CLI 🙂 ), I run opatch against Grid Infrastructure home to check the current patch level :

28656071;OCW RELEASE UPDATE 18.4.0.0.0 (28656071)
28655963;DBWLM RELEASE UPDATE 18.4.0.0.0 (28655963)
28655916;ACFS RELEASE UPDATE 18.4.0.0.0 (28655916)
28655784;Database Release Update : 18.4.0.0.181016 (28655784)
28547619;TOMCAT RELEASE UPDATE 18.0.0.0.0 (28547619)

Since the GUI now shows when a new patch is available for Grid Infrastructure, there is a new Exadata Grid section with a precheck option in its burger menu :

Continue reading “Exadata Cloud at Customer : Grid Infrastructure patch precheck under the hood”

Problem with datapatch, sqlpatch_bootstrap.sql and obj$

hermes-rivera-471873-unsplash

(Picture by Hermes Rivera, via Unsplash)

EDIT : This bug has finally been fixed by patch 28809007 and should be included with release 20.1 🙂 !

This blog post describes a very specific problem I encountered while using datapatch.

I recently patched 400+ 12.1.0.2 databases on RHEL 7.5 with Database Proactive Bundle Patch + OJVM PSU 12.1.0.2.180717 as described in this previous blog post.

Everything went very well on all databases, except one, maybe one of the most critical databases because it is a repository centralizing information about all databases in our ecosystem.
Datapatch would not work properly and would output the following error :

SQL Patching tool version 12.1.0.2.0 Production on Mon Oct  8 15:25:07 2018
Copyright (c) 2012, 2017, Oracle.  All rights reserved.

Connecting to database...OK
Bootstrapping registry and package to current versions...done
  Error in bootstrap log /ccv/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_27945_2018_10_08_15_25_07/bootstrap1_SOMEDB.log:
    Error at line 31: ORA-01427: single-row subquery returns more than one row

Prereq check failed, exiting without installing any patches.

Please refer to MOS Note 1609718.1 and/or the invocation log
/ccv/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_27945_2018_10_08_15_25_07/sqlpatch_invocation.log
for information on how to resolve the above errors.

SQL Patching tool complete on Mon Oct  8 15:25:09 2018

Continue reading “Problem with datapatch, sqlpatch_bootstrap.sql and obj$”