El OraInventory o Central Inventory, contiene la información relacionada con todos los productos Oracle instalados en un servidor. Su presencia no es requerida para la operatividad del software pero sí cuando lo queremos actualizar, por ejemplo: para aplicar el patch que nos solucionará aquel bug que hemos encontrado.
Si el OraInventory ya no existe o está corrupto entonces estamos entrampados, por ello es una buena práctica respaldarlo cada vez que instalemos o actualicemos software Oracle; pero ¿y qué si nunca lo hicimos? Si estás usando 10g o superior la solución no podía ser más simple.
Primero veamos la situación inicial, Oracle Universal Installer nos muestra que el OraInventory está vacío.
Teniendo en cuenta que en este servidor tenía instalado Oracle EE, Oracle SE y el Agente de Grid Control, el procedimiento a seguir para reconstruir el Central Inventory, registrando en él el software ya instalado, es:
1. Nos posicionamos en el home de Oracle Universal Installer
[oracle@caliope ~]$ cd $ORACLE_HOME/oui/bin
[oracle@caliope bin]$
[oracle@caliope bin]$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="DB10g_EE"
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
>>> Ignoring required pre-requisite failures. Continuing...
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oracle/oraInventory
'AttachHome' was successful.
[oracle@caliope bin]$
[oracle@caliope bin]$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_2" ORACLE_HOME_NAME="DB10g_SE"
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
>>> Ignoring required pre-requisite failures. Continuing...
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oracle/oraInventory
'AttachHome' was successful.
[oracle@caliope bin]$
[oracle@caliope bin]$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/oracle/product/agent10g" ORACLE_HOME_NAME="Agent10g"
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
>>> Ignoring required pre-requisite failures. Continuing...
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oracle/oraInventory
'AttachHome' was successful.
[oracle@caliope bin]$
El proceso ha concluido, ahora OUI nos muestra el OraInventory reconstruido.
Recuerda que esto no funciona para las versiones previas a 10g por lo que si tienes en uso alguna version anterior, ¿qué esperas para obtener un respaldo?
Si quieres empaparte con el tema de los Inventarios, te recomiendo las notas: 564192.1 FAQs on Central Inventory and Oracle Home Inventory (Local Inventory) in Oracle RDBMS, y 556834.1 Steps To Recreate Central Inventory (oraInventory) In RDBMS Homes. ¡Suerte con la lectura!