Aplicar PSU - Parche en Oracle 12 en Windows Server 2012



Saludos,

Para tener presente a la hora de aplicar un PSU o un parche a la Base de Datos de Oracle en Sistema Operativo Windows.

Seteamos el oracle_home,patch_home, PATH and ORACLE_SID

SET ORACLE_HOME=D:\oracle\DB\12.1.0.2\dbhome_1
SET PATH=D:\oracle\DB\12.1.0.2\dbhome_1\bin;D:\oracle\DB\12.1.0.2\dbhome_1\opatch;%PATH%
SET ORACLE_SID=ORCL
SET PATH=%ORACLE_HOME%\perl\bin;%PATH%

Validamos la version del opatch instalado:
# opatch version 





NOTA: Se recomienda tener la ultima versión instalada.

Validamos el ultimo parche aplicado:
# opatch lsinventory



Realizamos un backup Full de la Base de Datos y de los Binarios de Oracle.
run {
allocate channel ch00 type disk;
allocate channel ch01 type disk;
allocate channel ch02 type disk;
backup format 'F:\rman\full_db_%t_%sp%p' filesperset 10 database plus archivelog;
release channel ch00;
release channel ch01;
release channel ch02;
allocate channel ch00 type disk;
backup format 'F:\rman\cntrl_%s_%p_%t' CURRENT CONTROLFILE;
backup format 'F:\rman\spfile_%s_%p_%t' spfile;
release channel ch00;
}
Creamos un pfile as current Spfile.
# create pfile='E:\oracle\initpfile.ora' from spfile;

Validamos objectos invalidos antes y después de aplicar el parche de seguridad.
select 'alter '||object_type|| ' ' || owner ||'.'||object_name || ' compile;' from dba_objects where status='INVALID';

NOTA: Si es una maquina virtual debemos realizar en Services.msc
Bajar servicios de Oracle , Distributed Transaction Coordinator, Windows Management Instrumentation, COM+ System Application, VMware Tools, VMware-provided.


Para proceder a aplicar el Parche de seguridad vamos al archivo que descargamos de oracle support, lo descomprimimos y vamos a la ruta de la carpeta que descomprimio.

#cd C:\parche_oracle\p27162953_121020_MSWIN-x86-64\27162953

C:\parche_oracle\p27162953_121020_MSWIN-x86-64\27162953> opatch apply 



Cuando termina de aplicar el parche de seguridad genera el mensaje:


Validamos la versión del parche aplicado:
# opatch lsinventory





Ya confirmamos que quedo aplicado el ultimo parche de seguridad.

Subimos los servicios de la Base de Datos y confirmamos que nos podemos conectar por sysdba.

Ahora debemos registrarlo en la Base de Datos Oracle:

# cd D:\oracle\DB\12.1.0.2\opatch
# D:\oracle\DB\12.1.0.2\opatch> datapatch -verbose




NOTA: Tener presente que para versión de 11g se realiza un Post diferente.

Validamos que en la Base de Datos registre el PSU aplicado.

select patch_id,version,flags,action,status,action_time,description,bundle_series from dba_registry_sqlpatch;



Validamos los objectos inválidos después de aplicar el parche de seguridad:

cd %ORACLE_HOME%\rdbms\admin
sqlplus /nolog
CONNECT / AS SYSDBA
@utlrp.sql
select count(*) from dba_objects where status='INVALID';