viernes, 3 de enero de 2020

13. PROBLEMAS CON EL BACKUP DE ARCHIVELOG Y EL ESPACIO EN +FRA

Uno de los inconvenientes que he tenido que vivir en lo relacionado a RMAN y el backup de ARCHIVELOG es el siguiente:

escenario:

La herramienta de monitoreo de base de datos no genero ninguna alarma y de un momento a otro se detuvo dejando a toda la aplicación fuera de linea.

1) Revisión del alert log

Fri Jan 03 09:44:31 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc2_30903.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 197132288 bytes disk space from 429496729600 limit
ARC2: Error 19809 Creating archive log file to '+FRA'
Fri Jan 03 09:44:31 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc1_30901.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 429496729600 bytes is 100.00% used, and has 0 remaining bytes available.
Fri Jan 03 09:44:31 2020
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
   then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
   BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
   reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
   system command was used to delete files, then use RMAN CROSSCHECK and
   DELETE EXPIRED commands.
************************************************************************
Fri Jan 03 09:44:31 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc1_30901.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 210763776 bytes disk space from 429496729600 limit
Fri Jan 03 09:44:31 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc0_30899.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 429496729600 bytes is 100.00% used, and has 0 remaining bytes available.
Fri Jan 03 09:44:31 2020
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
   then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
   BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
   reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
   system command was used to delete files, then use RMAN CROSSCHECK and
   DELETE EXPIRED commands.
************************************************************************
Fri Jan 03 09:44:31 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc0_30899.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 190840832 bytes disk space from 429496729600 limit
ARC0: Error 19809 Creating archive log file to '+FRA'
Fri Jan 03 09:44:31 2020
Archived Log entry 839377 added for thread 1 sequence 199361 ID 0xd9194d3c dest 1:
Fri Jan 03 09:44:32 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc2_30903.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 429496729600 bytes is 100.00% used, and has 0 remaining bytes available.
Fri Jan 03 09:44:32 2020
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
   then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
   BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
   reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
   system command was used to delete files, then use RMAN CROSSCHECK and
   DELETE EXPIRED commands.
************************************************************************
Fri Jan 03 09:44:32 2020
Errors in file /u02/app/oracle/diag/rdbms/geos/GEOS/trace/GEOS_arc2_30903.trc:
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 197132288 bytes disk space from 429496729600 limit
ARC2: Error 19809 Creating archive log file to '+FRA'

2) Tratando de subir la DB

SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.

Total System Global Area 7759462400 bytes
Fixed Size                  3009240 bytes
Variable Size            4672455976 bytes
Database Buffers         3078619136 bytes
Redo Buffers                5378048 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 5508
Session ID: 1137 Serial number: 28254

3) Evidencias y análisis

lo anterior me identifico que el problema esta asociado a que el size asignado al parámetro  "db_recovery_file_dest_size" se encontraba lleno.

4) Validaciones

* Subir la base de datos en estado "mount"

SQL> startup mount
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.

Total System Global Area 7759462400 bytes
Fixed Size                  3009240 bytes
Variable Size            4672455976 bytes
Database Buffers         3078619136 bytes
Redo Buffers                5378048 bytes
Database mounted.
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     199196
Next log sequence to archive   199196
Current log sequence           199207

* Validar los parametros de "db_recovery_file_dest" y "db_recovery_file_dest_size"

show parameter db_recover;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +FRA
db_recovery_file_dest_size           big integer 300G

------------------------------------------------------------------------------------------------------------------------------

SQL> select name, floor(space_limit / 1024 / 1024) "Size MB",ceil(space_used/ 1024 / 1024) "Used MB"
from v$recovery_file_dest;  2

NAME  Size MB    Used MB
--------------------------------------
+FRA    309600       309600

IDENTIFICAMOS QUE EL ESPACIO ASIGNADO AL PARÁMETRO DE "db_recovery_file_dest_size" SE "LLENO".

* validamos el espacio existente en el ASM sobre el +FRA

SQL> COL "% USED" FOR 99.0
SELECT GROUP_NUMBER, name, total_mb, TOTAL_MB-free_mb "USED MB",free_mb, 100- (free_mb/total_mb*100) "% USED", TYPE, STATE FROM v$asm_diskgroup;SQL>

GROUP_NUMBER NAME                             TOTAL_MB    USED MB    FREE_MB % USED TYPE   STATE
------------ ------------------------------ ---------- ---------- ---------- ------ ------ -----------
           2 FRA                                511995       309600      202395   61.5 EXTERN CONNECTED
           1 DATA                              1023990     915791     108199   89.4 EXTERN CONNECTED

TENEMOS ESPACIO PARA AMPLIAR EL PARAMETRO

* ALTERAMOS EL VALOR DEL PARAMETRO 


SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=400G SCOPE=BOTH;
 
System altered.

* REINICIAMOS NUESTRA BASE DE DATOS Y LA SUBIMOS NORMAL (OPEN)

SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.

Total System Global Area 7759462400 bytes
Fixed Size                  3009240 bytes
Variable Size            4412409128 bytes
Database Buffers         3338665984 bytes
Redo Buffers                5378048 bytes
Database mounted.
Database opened.




lunes, 9 de diciembre de 2019

10. ACERCA DEL ALERT LOG EN ORACLE


·     El fichero de alertas de oracle alert.log es uno de los ficheros que tradicionalmente revisamos en busca de errores de la base de datos.

    10.1. UBICACIÓN DEL ALERT LOG EN ORACLE 11G

             select * FROM V$PARAMETER where name like '%background_dump_dest%';
                   
                   show parameter background;
                   
                   show parameter background_dump_dest;

    10.2. UBICACIÓN DEL ALERT.LOG DE ORACLE 12C Y ORACLE 18C

-      select * from v$diag_info;

             $ORACLE_BASE/diag/rdbms/<sid>/<sid>/trace and is named alert_<sid>.log

            Esta otra sentencia es muy completa

            set lines 800
                  col inst_id form 9999 head inst
                  col name form a25
                  col value form a80 wrap
                  select * from v$diag_info order by name; 
      


Hasta la versión 11g esta monitorización se hacía por medio del scripts que interactuaban con ficheros del sistema operativo, lo que nos llevaba a tener que mantener estos scripts para las distintas versiones de shells de sistema, o tener que instalar algún tipo de intérprete en el sistema que nos lo gestionara de manera multiplataforma.

Una de las grandes ventajas de la 11g es que Oracle nos ha obsequiado con una tabla de base de datos que mapea esta información del alert.log dentro de la base de datos. Estamos hablando de la tabla x$dbgalertext;

Mediante la tabla x$dbgalertext podemos obtener toda la información que está en el alert.log, su contenido es:

SQL>desc X$DBGALERTEX

Ahora bien, ¿cómo accedemos a ella?

La tabla no puede ser accedida directamente desde un usuario que no sea sys, así que, lo que haremos será el crear una vista sobre esta tabla (a la que llamaremos por ejemplo ficheroalert ) y permitirle que lo vea a nuestro usuario de monitorización.

SQL>create view ficheroalert as select  * from sys.x$dbgalertext;
grant select on sys.ficheroalert to MONITORIZACION;

·         La siguiente sentencia permite ver las veces que se ha hecho un ALTER en lo que llevamos de año.

SQL>select   
 ORIGINATING_TIMESTAMP,
 MESSAGE_TEXT
    from sys.x$dbgalertext
where  ORIGINATING_TIMESTAMP >
      TO_TIMESTAMP('01-01-14 00:00:00','DD-MM-RR HH24:MI:SS')
 and ( MESSAGE_TEXT like 'ALTER%');

·        La siguiente sentencia permite ver las veces que se han hecho un ALTER en lo que llevamos de un año (quitando el rman)

SQL>select   
   ORIGINATING_TIMESTAMP,
   MESSAGE_TEXT
     from sys.x$dbgalertext
   where  ORIGINATING_TIMESTAMP >
      TO_TIMESTAMP('01-01-14 00:00:00','DD-MM-RR HH24:MI:SS')
     and module_id not in ('rman')
     and ( MESSAGE_TEXT like 'ALTER%')
    and( MESSAGE_TEXT not like 'ALTER DATABASE BACKUP CONTROLFILE TO %')

·        La siguiente sentencia permite ver las veces que se ha llevado un evento de arrancado de la bases de datos.

SQL>select   
   ORIGINATING_TIMESTAMP,
   MESSAGE_TEXT
     from sys.x$dbgalertext
   where  ORIGINATING_TIMESTAMP >
         TO_TIMESTAMP('01-01-14 00:00:00','DD-MM-RR HH24:MI:SS')
 and( MESSAGE_TEXT like 'ALTER DATABASE OPEN%');

10.3. BUSCANDO LA UBICACIÓN DEL ALERT.LOG CON ADRCI (Linux, Solarix)

ADRCI: (ADR Command Interpreter) está disponible a partir de la versión 11g de Oracle y nos permite rotar/eliminar de manera sencilla así como establecer las políticas de retención para los logs de las instancias de base de datos, tanto los de Alert como Trace, cdump, hm, incident y utscdmp.

Su manejo es sencillo, para nuestro caso solo es hacer el llamado de la herramienta desde el prompt del sistema operativo.

-bash-5.0$ adrci

ADRCI: Release 12.1.0.2.0 - Production on Sat Nov 27 08:20:37 2021

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/u01/app/oracle"

adrci> show alert

Choose the home from which to view the alert log:

1: diag/clients/user_oracle/host_2811459066_82
2: diag/rdbms/incorepr/INCOREPR2
3: diag/rdbms/sfcorepr/SFCOREPR1
4: diag/rdbms/sfcorepr/SFCOREPR2
5: diag/rdbms/repoprd/REPOPRD2
6: diag/tnslsnr/colombia4/mgmtlsnr
7: diag/tnslsnr/colombia4/listener_backup
8: diag/tnslsnr/colombia4/listener_copia_dataguard
9: diag/tnslsnr/colombia4/listener_dataguard
Q: to quit

Con el comando del SHOW podemos ver el contenido de los archivos por cantidad de lineas.

Please select option: SHOW ALERT -TAIL 50

Please select option: 3
Output the results to file: /tmp/alert_69613_1_SFCOREPR1_1.ado


viernes, 6 de diciembre de 2019

12. EXPERIENCIA CON EL PARCHEO DE LA BASES DE DATOS ORACLE


CONCEPTOS BÁSICOS

(REF: https://www.oracle.com/technetwork/es/articles/database-performance/aplicar-parche-oracle-dbaas-3338001-esa.html)

¿Qué es un “Security Patch Update (SPU)”? Es un parche que tiene reparaciones (fixes) que hacen frente a vulnerabilidades de seguridad. Estos parches son acumulativos, lo cual quiere decir que por ejemplo el SPU de abril contiene los “fixes” tanto del SPU de enero y también los nuevos de abril, y así sucesivamente. Los SPU poseen siempre la cualidad que pueden ser instalados de manera “Rolling” (un nodo a la vez) en ambientes de “RAC” y también poseen la cualidad que pueden ser instalados primero en un ambiente “Standby” (Standby First Installable).

¿Qué es un Patch Set Updates (PSU)? Los PSU son muy importantes pues poseen las reparaciones (fixes) a los “bugs” de muy alto riesgo o “bugs” de poco riesgo que poseen los binarios de la base de datos, pero también incluye todos los “fixes” para las vulnerabilidades de seguridad que son incluidos en el SPU. Básicamente el SPU está incluido en el PSU. Estos parches también son acumulativos. Lo cual quiere decir, que todas las reparaciones (fixes) de los “bugs” en los binarios de Oracle que fueron incluidos en el PSU de enero también son incluidos en el PSU de abril. 

¿Qué es un “Bundle Patch (BP)”? Estos parches son creados para un producto en específico o un componente en específico. Son parches aún más completos que los PSU, poseen todos los “fixes” que han sido incluidos en los PSU y otros “fixes” más. Estos parches no son liberados con el mismo comportamiento que los PSU o SPU, lo cual quiere decir que pueden ser liberados de manera aún más frecuente que los PSU y SPU o puede ser que sean menos frecuentemente liberados.
¿Qué es un “Interim Patch”? En el pasado se les conocía como “One-Off Patch”, estos parches son muy particulares. Básicamente son parches que Oracle desarrolla para un problema (bug) en específico que tiene un cliente en particular. Por lo mismo que son desarrollados para una situación de un cliente en particular es que estos parches son creados bajo demanda.
¿Por qué aplicar un Parche?

Independientemente al tipo de parche que se esté aplicando ya sea un “SPU”, “PSU” o “BP” , todos en general son útiles y ayudan a que nuestra base de datos esté protegida ante las vulnerabilidades de seguridad o ante problemas en los binarios (bugs). Es por eso que aplicar parches es una tarea fuertemente recomendada y que todo Administrador de base de datos debería de hacer trimestralmente (en el mejor de los casos) para evitarse problemas reactivos y así apoyar a la continuidad de negocio que las compañías de ahora requieren.  Sin embargo, esta tarea no es tan fácil como parece, requiere de mucha planificación, también la involucración de expertos de otras áreas tales como de sistema operativo, de las aplicaciones, entre otros.  Dependiendo del tipo de parche que se esté aplicando algunas veces se requiere “Downtime” (Tiempo en que los sistemas no están funcionando), esto puede ser mitigado si se está utilizando una base de datos en “RAC” pues así podríamos utilizar el método de “un nodo a la vez” (Rolling), pero cuando no, la instancia de nuestra base de datos de tipo “Single Instance” debe ser cerrado para poder aplicar el parche. Pero no solamente eso, también se requiere que los archivos del parche sean descargados desde “My Oracle Support”, dichos archivos deben ser transferidos hacia el servidor en donde se tiene la base de datos en donde queremos aplicar el parche, algunas veces se requiere una nueva versión de la herramienta “OPatch” por lo que también hay que descargarla y transferir dichos archivos hacia el servidor de le datos, luego se tiene que validar conflictos de parches (cuando la base de datos ya tiene otros parches aplicados), resolver dichos conflictos, coordinar con las otras áreas del negocio la actividad y finalmente aplicar el parche, y un paso más, validar el parche y algunas veces algunos pasos “post-parchado”. ¿Ahora no suena tan sencillo? ¿Y si a todo esto le agregamos el error humano? Dado que todas estas tareas son realizadas manualmente se requiere unas personas con mucha experiencia en este tipo de actividades, mucha atención a los detalles y cuidado al ejecutar cada paso, con el objetivo de mitigar la probabilidad del error.

RUTA DE DESCARGAS DE PARCHES

1.1. busqueda y descarga del PSU aplicar.

·         En la anterior ruta de Oracle soporte, se puede encontrar los parches por cada una de sus versiones.
 Se debe seleccionar para las versiones anteriores o igual a 12.1.0.2 la siguiente opcion  “Oracle Database PSU, SPU(CPU), Bundle Patches (Versions 12.1 & lower)”
Seleccionar la versión respectiva del motor de oracle 

Inmediatamente seleccionado la versión del motor, automáticamente se despliega el cuadro de PSU por número de PSU, por fecha, por tipo de sistema operativo y si es para GRID o para DB.

Después de seleccionado el número de PSU a aplicar, se nos despliega la opción de sistemas operativos con sus respectivas características de tamaño, fecha de update, etc.

Al seleccionar el parche a descargar, el MOS nos despliega la ventana de descarga del parche, dar clic sobre el boton Dowload

Inmediatamente, MOS nos muestra el PSU a descargar y nos da la opción de seleccionarlo para empezar de forma inmediata la descarga.

1.2. proceso de parcheo

·         IDENTIFICAMOS EL SERVER Y LA INSTANCIA DE LA DB A LA CUAL APLICAR EL PSU

SYS@ora01> select instance_name from v$instance;

INSTANCE_NAME
----------------
ora01

SYS@ora01> !hostname;
procbsedb01fsa

·         IDENTIFICAMOS LA VERSION DE LA DB

SYS@ora01> select version from v$instance;

VERSION
-----------------
11.2.0.4.0

·         IDENTIFICAMOS LA VERSION DEL SISTEMAS OPERATIVOS DEL SERVER

oracle@xxxxxxxx:ora01 [/opt/oracle/oracle] $uname -a
Linux xxxxxxxxx 3.0.101-0.47.90.1.12144.2.PTF-default #1 SMP Tue Dec 20 16:00:07 UTC 2016 (85592bb) x86_64 x86_64 x86_64 GNU/Linux

·         IDENTIFICAR LAS VARIABLES DE ENTORNO DE $ORACLE_HOME PARA GRID Y ORACLE
oracle = /oracle/app/product/11gR2/db
Grid = /opt/oracrs/product/11gR2/grid

·         IDENTIFICAR LA RUTA DE LOS MEDIOS DE INSTALACION

Identifique la ruta donde ubico los archivos del PSU descargados en el punto 12.1 dentro del servidor en el cual se va aplicar el parche, tenga en cuenta que es necesario concederle permisos según el tipo de usuario a ejecutar el parcheo.
Ejemplo:

GRID = /opt/oracle/medios/GRID
Database = /opt/oracle/medios/ORACLE

·         IDENTIFICAMOS LAS ULTIMAS EJECUCIONES DE PARCHES SOBRE LA DB
ORACLE 11
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;
FECHA              ACTION               NAMESPACE                      VERSION    COMMENTS                       BUNDLE_SER
------------------ -------------------- ------------------------------ ---------- ------------------------------ ----------
2017-03-15 13:02   APPLY                SERVER                         11.2.0.4   PSU 11.2.0.4.8                 PSU

ORACLE 12
SET LINESIZE 180 PAGESIZE 90
COLUMN FECHA FORMAT A15
COLUMN action FORMAT A8
COLUMN status FORMAT A8
COLUMN description FORMAT A50
COLUMN version FORMAT A9
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;
ACTION_TIME         ACTION   STATUS   DESCRIPTION                                        VERSION     PATCH_ID BUNDLE_SER
------------------- -------- -------- -------------------------------------------------- --------- ---------- ----------
2019-09-02 15:59:57 APPLY    SUCCESS  DATABASE JUL 2019 RELEASE UPDATE 12.2.0.1.190716   12.2.0.1    29757449 DBRU

·         Verificamos los componentes de la DB
SET PAUSE ON;
SET PAUSE 'Press Return to Continue';
SET PAGESIZE 60;
SET LINESIZE 300;
SET VERIFY OFF;
COL comp_name FOR a44 HEA 'Component';
COL version FOR a17 HEA 'Version';
COL status FOR a17 HEA 'Status';
SELECT comp_name, version, status FROM dba_registry
/
Press Return to Continue;

Component                                    Version           Status
-------------------------------------------- ----------------- -----------------
Oracle Database Catalog Views                11.2.0.4.0        VALID
Oracle Database Packages and Types           11.2.0.4.0        VALID
Oracle Workspace Manager                     11.2.0.4.0        VALID

·         Verificación de objetos inválidos antes de la ejecución del parche

select OWNER,OBJECT_NAME,OBJECT_TYPE,STATUS from dba_objects
where OWNER not in ('SYS','SYSTEM') and status = 'INVALID'
order by OWNER,OBJECT_TYPE,OBJECT_NAME;

1.2.1. Pre-requisitos de la ejecución del parche

Con usuario ORACLE O CON USUARIO GRID dependiendo el nivel de parchado solicitado

·         Verificar la version del OPatch igual o superior 11.2.0.3.6

PARA GRID :
              
       grid@procbsedb01fsa:+ASM [/opt/oracrs/product/11gR2/grid/OPatch] $./opatch version
       OPatch Version: 11.2.0.3.12

PARA ORACLE:
              
       oracle@procbsedb01fsa:ora01 [/oracle/app/product/11gR2/db/OPatch] $./opatch version
       OPatch Version: 11.2.0.3.12

·         Configuración o validación del OCM

oracle@prodcbsbfsa:ora01 [/oracle/app/product/11gR2/db/OPatch/ocm/bin] $./emocmrsp -no_banner -output $ORACLE_HOME/OPatch/ocm.rsp
Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name:
You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  y
The OCM configuration response file (/oracle/app/product/11gR2/db/OPatch/ocm.rsp) was successfully created.

·         Validación de posibles conflictos entre el parche y la actual instalación

PARA GRID :

  ./opatch prereq CheckConflictAgainstOHWithDetail -ph /opt/oracle/medios/GRID/28429134

Oracle Interim Patch Installer version 11.2.0.3.12
       Copyright (c) 2019, Oracle Corporation.  All rights reserved.
       PREREQ session
       Oracle Home       : /opt/oracrs/product/11gR2/grid
       Central Inventory : /opt/oraInventory
from           : /opt/oracrs/product/11gR2/grid/oraInst.loc
       OPatch version    : 11.2.0.3.12
       OUI version       : 11.2.0.4.0
Log file location : /opt/oracrs/product/11gR2/grid/cfgtoollogs/opatch/opatch2019-08-14_15-53-02PM_1.log
                       Invoking prereq "checkconflictagainstohwithdetail"
                       Prereq "checkConflictAgainstOHWithDetail" passed.
                       OPatch succeeded.

PARA ORACLE:

oracle@procbsedb01fsa:ora01 [/opt/oracle/medios] $ORACLE_HOME/OPatch/./opatch prereq CheckConflictAgainstOHWithDetail -ph /opt/oracle/medios/ORACLE/28204707
Oracle Interim Patch Installer version 11.2.0.3.12
       Copyright (c) 2019, Oracle Corporation.  All rights reserved.
       PREREQ session
       Oracle Home       : /oracle/app/product/11gR2/db
       Central Inventory : /opt/oraInventory
 from           : /oracle/app/product/11gR2/db/oraInst.loc
       OPatch version    : 11.2.0.3.12
       OUI version       : 11.2.0.4.0
Log file location : /oracle/app/product/11gR2/db/cfgtoollogs/opatch/opatch2019-08-13_16-34-23PM_1.log
                       Invoking prereq "checkconflictagainstohwithdetail"
                       Prereq "checkConflictAgainstOHWithDetail" passed.
                       OPatch succeeded.

·       validación de espacio del sistema para la ejecución del parche

Creamos el archivo de validación de los parches internos componentes del PSU

PARA GRID :

       vi /tmp/patch_list_gihome_grid.txt
       /opt/oracle/medios/GRID/28429134/28204939
       /opt/oracle/medios/GRID/28429134/28204707
       /opt/oracle/medios/GRID/28429134/27735020

       ./opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome_grid.txt

       Oracle Interim Patch Installer version 11.2.0.3.12
       Copyright (c) 2019, Oracle Corporation.  All rights reserved.
       PREREQ session
       Oracle Home       : /opt/oracrs/product/11gR2/grid
       Central Inventory : /opt/oraInventory
          from           : /opt/oracrs/product/11gR2/grid/oraInst.loc
       OPatch version    : 11.2.0.3.12
       OUI version       : 11.2.0.4.0
Log file location : /opt/oracrs/product/11gR2/grid/cfgtoollogs/opatch/opatch2019-08-15_14-40-37PM_1.log

       Invoking prereq "checksystemspace"
       Prereq "checkSystemSpace" passed.
       OPatch succeeded.

               PARA ORACLE:

       vi /tmp/patch_list_gihome.txt
       /opt/oracle/medios/ORACLE/28204707/28204939
       /opt/oracle/medios/ORACLE/28204707/28204707
       /opt/oracle/medios/ORACLE/28204707/27735020

oracle@procbsedb01fsa:ora01 [/oracle/app/product/11gR2/db/OPatch] $./opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
       Oracle Interim Patch Installer version 11.2.0.3.12
       Copyright (c) 2019, Oracle Corporation.  All rights reserved.
       PREREQ session
       Oracle Home       : /oracle/app/product/11gR2/db
       Central Inventory : /opt/oraInventory
          from           : /oracle/app/product/11gR2/db/oraInst.loc
       OPatch version    : 11.2.0.3.12
       OUI version       : 11.2.0.4.0
Log file location : /oracle/app/product/11gR2/db/cfgtoollogs/opatch/opatch2019-08-13_16-42-37PM_1.log
       Invoking prereq "checksystemspace"
       Prereq "checkSystemSpace" passed.
       OPatch succeeded.

         Validación del Oracle Inventory

PARA GRID :

grid@procbsedb01fsa:+ASM [/opt/oracrs/product/11gR2/grid/OPatch] $./opatch lsinventory -detail -oh /opt/oracrs/product/11gR2/grid
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

Oracle Home       : /opt/oracrs/product/11gR2/grid
Central Inventory : /opt/oraInventory
   from           : /opt/oracrs/product/11gR2/grid/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /opt/oracrs/product/11gR2/grid/cfgtoollogs/opatch/opatch2019-08-13_14-14-06PM_1.log

Lsinventory Output file location : /opt/oracrs/product/11gR2/grid/cfgtoollogs/opatch/lsinv/lsinventory2019-08-13_14-14-06PM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: procbsedb01fsa
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1):

Oracle Grid Infrastructure 11g                                       11.2.0.4.0
There are 1 products installed in this Oracle Home.


Installed Products (89):

Agent Required Support Files                                         10.2.0.4.5
Assistant Common Files                                               11.2.0.4.0
Automatic Storage Management Assistant                               11.2.0.4.0
Bali Share                                                           1.1.18.0.0
Buildtools Common Files                                              11.2.0.4.0
Character Set Migration Utility                                      11.2.0.4.0
Cluster Ready Services Files                                         11.2.0.4.0
Cluster Verification Utility Common Files                            11.2.0.4.0
Cluster Verification Utility Files                                   11.2.0.4.0
Database SQL Scripts                                                 11.2.0.4.0
Deinstallation Tool                                                  11.2.0.4.0
Enterprise Manager Common Core Files                                 10.2.0.4.5
Enterprise Manager Common Files                                      10.2.0.4.5
Enterprise Manager plugin Common Files                               11.2.0.4.0

PARA ORACLE:

Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /oracle/app/product/11gR2/db
Central Inventory : /opt/oraInventory
   from           : /oracle/app/product/11gR2/db/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.4.0
Log file location : /oracle/app/product/11gR2/db/cfgtoollogs/opatch/opatch2019-08-15_14-50-33PM_1.log

Lsinventory Output file location : /oracle/app/product/11gR2/db/cfgtoollogs/opatch/lsinv/lsinventory2019-08-15_14-50-33PM.txt

--------------------------------------------------------------------------------
Local Machine Information::
Hostname: procbsedb01fsa
ARU platform id: 226
ARU platform description:: Linux x86-64

Installed Top-level Products (1):

Oracle Database 11g                                                  11.2.0.4.0
There are 1 products installed in this Oracle Home.


Installed Products (136):

Agent Required Support Files                                         10.2.0.4.5
Assistant Common Files                                               11.2.0.4.0
Bali Share                                                           1.1.18.0.0
Buildtools Common Files                                              11.2.0.4.0
Character Set Migration Utility                                      11.2.0.4.0
Cluster Verification Utility Common Files                            11.2.0.4.0
Database Configuration and Upgrade Assistants                        11.2.0.4.0
Database SQL Scripts                                                 11.2.0.4.0
Database Workspace Manager                                           11.2.0.4.0
Deinstallation Tool                                                  11.2.0.4.0
Enterprise Edition Options                                           11.2.0.4.0
Enterprise Manager Agent                                             10.2.0.4.5
Enterprise Manager Agent Core Files                                  10.2.0.4.5
Enterprise Manager Common Core Files                                 10.2.0.4.5

1.2.2. PARCHEO

1.2.2.1. Validaciones de descarga del parche.

Identifique la ruta donde va a tener los ejecutables del parche, esta ruta debe tener los permisos específicos para los respectivos usuarios de ejecucion del mismo. (GRID u ORACLE)
oracle@procdb01fsa:ora01 [/opt/oracle/medios] $pwd
       /opt/oracle/medios
       oracle@procbs01fsa:ora01 [/opt/oracle/medios] $ll
       total 914300
       drwxr-xr-x 5 oracle oinstall      4096 Oct 10  2018 28429134
       -rw-r--r-- 1 oracle oinstall 935171743 Aug 13 14:55 p28429134_112040_Linux-x86-64.zip
       -rw-rw-r-- 1 oracle oinstall    143080 Nov  1  2018 PatchSearch.xml

1.2.2.2. DETENER SERVICIOS COMPLEMENTARIOS

·         Detener el Golden Gate               (En caso de tener el servicio de réplica por Golden)
       gg
       info all
       stop mgr
       stop *
       start mgr
       start *
       si no queda stoped = kill extract GRUPO

·         Detener la DATABASE

$ORACLE_HOME/bin/srvctl stop database –d ora01

·         Detener el LISTENER

lsnrctl stop

         Detener el DATAGUARD (En caso de tener el servicio de replica por DATAGUARD)

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

1.2.2.3. PARCHEO

Se debe ejecutar como usuario ROOT
                              
Para GRID:
              
cd /opt/oracrs/product/11gR2/grid/OPatch
./opatch auto 28429134/ -oh /opt/oracrs/product/11gR2/grid -ocmrf /oracle/app/product/11gR2/db/OPatch/ocm.rsp
              
Para ORACLE:
              
Cambiar a usuario de oracle
              
cd /oracle/app/product/11gR2/db/OPatch
./opatch apply 28429134/ -oh /oracle/app/product/11gR2/db -ocmrf /oracle/app/product/11gR2/db/OPatch/ocm.rsp
              
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT

1.2.2.4. Subir servicios complementarios

-          Iniciar Golden Gate
gg
                info all
                start mgr
                start *
                info all

                ** Validar sincronización de golden gate **
                info all
-          Iniciar Dataguard
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION PARALLEL 8;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
-          Arrancar base de datos

srvctl start database -d  ora01

-          Compilar objetos invalidos

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

1.2.3. VALIDACIONES DESPUÉS DE PARCHAR

$ORACLE_HOME/OPatch/./opatch lspatches

sqlplus / as sysdba
              
               SET LINESIZE 180 PAGESIZE 90
               COLUMN FECHA FORMAT A18
               SYS@ora01> SYS@ora01> COLUMN action FORMAT A20
               SYS@ora01> COLUMN version FORMAT A10
               SYS@ora01> COLUMN comments FORMAT A30
               SYS@ora01> COLUMN bundle_series FORMAT A10
               SYS@ora01> 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;

FECHA              ACTION               NAMESPACE                      VERSION    COMMENTS                       BUNDLE_SER
2017-03-15       3:02   APPLY                SERVER                             11.2.0.4      PSU 11.2.0.4.8                         PSU

1.2.4. Validar los archivos de log generados por la ejecucion de los parches.


oracle@proprd01a:ora01 [/home/oracle] $cd $ORACLE_BASE/cfgtoollogs/catbundle
oracle@proprd01a:ora01 [/opt/oracle/cfgtoollogs/catbundle] $ll
total 712
-rw-r----- 1 oracle oinstall   7771 Mar 30  2017 catbundle_PSU_VDSDB_APPLY_2017Mar30_02_54_21.log
-rw-r--r-- 1 oracle oinstall 625921 Jul 11 23:25 catbundle_PSU_VDSDB_APPLY_2019Jul11_23_25_44.log
-rw-r--r-- 1 oracle oinstall   3757 Jul 11 23:37 catbundle_PSU_VDSDB_APPLY_2019Jul11_23_37_25.log
-rw-r----- 1 oracle oinstall   3435 Mar 30  2017 atbundle_PSU_VDSDB_GENERATE_2017Mar30_02_54_20.log
-rw-r--r-- 1 oracle oinstall  23939 Jul 11 23:24 catbundle_PSU_VDSDB_GENERATE_2019Jul11_23_24_04.log
-rw-r--r-- 1 oracle oinstall  28562 Jul 11 23:25 catbundle_PSU_VDSDB_GENERATE_2019Jul11_23_25_44.log
-rw-r--r-- 1 oracle oinstall  28562 Jul 11 23:37 catbundle_PSU_VDSDB_GENERATE_2019Jul11_23_37_24.log

1.2.5. Actualizar Catalogo de RMAN

Con usuario de Oracle

               rman target /
               RMAN target / catalog catrman/CATRMAN_1102@CATALOGO
               UPGRADE CATALOG;