Hoy vamos a ver otra de estas entradas para dummies utiles en el dia a dia.
Como sabemos en que version de parcheado nos encontramos?
La primera opcion y mas sencilla es la del uso del binario del sistema operativo opatch, pero , como podemos estar seguros de que el parche/psu se ha ejecutado correctamente y se ha aplicado tambien la parte SQL
Oracle 11g
Si estamos en la version 11g deberemos de hacerlo consultando la tabla del diccionario sys.registry$history
SET LINESIZE 180 PAGESIZE 90
COLUMN FECHA FORMAT A18
COLUMN action FORMAT A20
COLUMN version FORMAT A10
COLUMN comments FORMAT A30
COLUMN bundle_series FORMAT A10
SELECT TO_CHAR(action_time, 'YYYY-MM-DD HH24:MI') AS FECHA,
action,
namespace,
version,
comments,
bundle_series
FROM sys.registry$history
ORDER by action_time;
Lo que nos devolvera algo similar a :
FECHA ACTION NAMESPACE VERSION COMMENTS BUNDLE_SER ------------------ -------------------- -------------------- ---------- ------------------------------ ---------- 07-JAN-2017 15:21 APPLY SERVER 11.2.0.3 PSU 11.2.0.3.15 PSU 01-DEC-2017 18:59 UPGRADE SERVER 11.2.0.4.0 Upgraded from 11.2.0.3.0 01-DEC-2017 19:00 APPLY SERVER 11.2.0.4 PSU 11.2.0.4.171017 PSU
Oracle 12c
Cuando estamos en la version 12c, tendremos dos maneras de encontrar esta informacion:
Preguntando a DBA_REGISTRY_SQLPATCH
La consulta sera muy similar a la anterior, pero en ved de preguntar a el dicionario sys.registry$history, lo haremos a la tabla DBA_REGISTRY_SQLPATCH
SET LINESIZE 180 PAGESIZE 90
COLUMN FECHA FORMAT A20
COLUMN action FORMAT A10
COLUMN status FORMAT A20
COLUMN description FORMAT A90
COLUMN version FORMAT A10
COLUMN bundle_series FORMAT A10
SELECT TO_CHAR(action_time, 'YYYY-MM-DD HH24:MI:SS') AS action_time,
action,
status,
description,
version,
patch_id,
bundle_series
FROM sys.dba_registry_sqlpatch
ORDER by action_time;
Lo que nos devolvera algo similar a
ACTION_TIME ACTION STATUS DESCRIPTION VERSION PATCH_ID BUNDLE_SER
-------------------- ---------- ---------- ---------------------------------------- ---------- ---------- ----------
07-MAR-2018 21:37:51 APPLY SUCCESS Database Patch Set Update : 12.1.0.2.4 12.1.0.2 20831110 PSU
(20831110)
Mediante el package dbms_qopatch
En la version 12c tenemos el nuevo datapatch en los parcheados, la informacion de los parches de la base de datos esta tambien accesible con el package dbms_qopatch.
Esto ya lo vimos en la entrada Obtener los parches instalados en la base de datos CDB que venia a decir :
set serverout on exec dbms_qopatch.get_sqlpatch_status;
Lo que nos devuelve
Patch Id : 25171037
Action : APPLY
Action Time : 14-JUN-2017 23:09:33
Description : DATABASE PATCH SET UPDATE 12.1.0.2.170418
Logfile :
/u01/app/oracle/cfgtoollogs/sqlpatch/25171037/21099266/25171037_apply_SID_2017Jun14_23_09_20.log
Status : SUCCESS
PL/SQL procedure successfully completed.
Sobre el uso de dbms_qopatch tenemos la URL hay una URL Como saber si un parche esta aplicado en la BBDD que tiene consultas muy utiles para obtener informacion de la base de datos (inventario,paches…)
Esta informacion ha sido obtenido en su totalidad de las URLS: