#Centro Webmaster de GOOGLE de prueba

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';


Ruta del Alert de la Base de Datos de Oracle



Ruta del Alert de la Base de Datos de Oracle

Saber ubicación donde sale el log de Base de Datos Oracle:
1 opción SQL> show parameter background 
2 opción SQL> show parameter dump
3 opción adrci 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_core_dump                 string      partial
background_dump_dest                 string      /oracle/app/oracle/diag/rdbms/PROD/PROD/trace

SQL> !ls -ltr /oracle/app/oracle/diag/rdbms/PROD/PROD/trace/al*
-rw-r----- 1 oracle oinstall 78512424 2011-10-03 02:00 /oracle/app/oracle/diag/rdbms/PROD/PROD/trace/alert_PROD.log

Obtener procesos en ejecución en Base de Datos Oracle


Obtener procesos en ejecución en Base de Datos Oracle

Útil para cuando no tenemos una herramienta de monitoreo como Lab... y queremos saber que usuarios estan activos en la Base de Datos:


SELECT sess.process, sess.status, sess.username, sess.schemaname, sql.sql_text
FROM v$session sess, v$sql sql
WHERE sql.sql_id(+) = sess.sql_id
AND sess.type = 'USER'
AND sess.status = 'ACTIVE';