Evento de espera enq: HW

Hoy vamos a ver un tipo de evento relaccionado habitualmente con las inserciones.

El HW High Water enqueue enq: HW se da cuando varios procesos compiten para aumentar el high water mark de una tabla .

Si disponemos del Enterprise manager console, podremos ver como aparece claramente un area marron de configuracion.

Esta carga se asocia claramente a una consulta de insert

Este caso puede ser comun en procesos de aplicacion con actualizaciones en paralelo sobre la misma tabla.

La manera de la resolución del mismo puede pasar por ampliar los freelists.

Mas informacion como siempre en soporte oracle

  • WAITEVENT: «enq: HW – contention» Reference Note (Doc ID 2098543.1)
  • Analyzing ‘enq: HW – contention’ Wait Event (Doc ID 740075.1)

ORA-39866 haciendo flashback con CDB/PDB

Hoy vamos a seguir viendo pequeñas diferencias entre la 12c y las versiones anteriores.

El funcionamiento del FlashbackDatabase es similar al que tiene la base de datos tradicional(no-cdb) , aunque tenemos que tener en cuenta un punto importante.
No se puede llevar a cabo un flashback de todo un CDB si se ha llevado a cabo un point-in-time recovery de uno de sus PDBs.
El intentar llevar un CBD a un punto anterior a la recuperación de uno de sus PDBs darán el error

ORA-39866: Data files for Pluggable Database TEST1 must be offline 
to flashback across PDB point-in-time recovery

Si quisieses llevar a cabo el volver el CBD después de haber restaurado un PDB a un punto tendríamos que :

  • Llevar a cabo un backup de todo
  • Parar el PDB
  • Dejar offline todos los ficheros del PDB
  • Hacer flashback del CDB
  • Restaurar el PDB al punto en el que estaba antes del flashback del PDB

Como veis, un cambio muy pequeño, pero que es conveniente conocer para no tener quebraderos de cabeza

Uso de RMAN con PDBs

Con la llegada de los plugable databases se nos abre un mar de dudas, especialmente en un campo tan delicado como el backup.
Hoy vamos a ver en una entrada muy por encima las opciones de backup que tenemos con la nueva funcionalidad de la 12c

Llevar a cabo backups en CDB/PDB

Igual que las bases de datos no cdv se pueden lanzar desde RMAN y/o Enterprise manager Cloud Control El backup del CDB es igual al de un “no-cdb”, de esta backup de rman podríamos recuperar tanto el CDB completo como alguno de los PDBs del backup

  • Backup completo del CDB: Conectando al cdb y BACKUP DATABASE
  • Backup del PDB root: BACKUP DATABASE ROOT
  • Backup de un PDB:
    • conectando al CDB y BACKUP PLUGGABLE DATABASE test1
    • conectando al CDB y BACKUP PLUGGABLE DATABASE test1,test2,test3
    • Conectando al PDB y ejecutando BACKUP DATABASE

Recuperación de CDB and PDB

A la hora de llevar a cabo una recuperación de la base de datos se puede hacer también el CBD completo, solamente el root o un PDB independiente.
Si en la cadena de conexión del RMAN te conectas al CBD recuperarás todo, si te conectas a un PDB específico será este PDB lo que recuperarás
NOTA:Aunque técnicamente es posible restaurar solamente el root, Oracle recomienda no hacerlo , y si has de restaurar el root restaurar también los PDBs de la base de datos.
Puedes restaurar también un PDB con

RESTORE PLUGGABLE DATABASE 

Mientras estas restaurando un PDB el resto de ellos puede dar servicio normalmente
Los comandos a la hora de restaurar datafiles específicos son como los de no-cbd, pero incluyendo el PLUGGABLE database (al tratarse de un PDB).

errores ORA-16698: en la creación del data guard boker

Hoy vamos a ver un a entrada rápida y sencilla sobre un error bastante común en la creación de una configuración del dataguard broker.

Supongamos tenemos un dataguard funcionando y que queremos gestionar mediante el dataguard broker.

Nuestros primeros pasos serán intentar crear una configuración con

DGMGRL> create configuration cdbtest_DG as primary database is cdbtest connect identifier is cdbtest ;

Pero recibimos el siguiente error:

ORA-16698: LOG_ARCHIVE_DEST_n parameter set for object to be added

Si nuestro dataguard está funcionando correctamente , y esta aplicando los logs …¿A que es debido?

Si miramos en nuestra base de datos


SQL> show parameter LOG_ARCHIVE_DEST_2 

NAME			   TYPE	 VALUE
----------------------- ------------------------------
log_archive_dest_2	   string	 service=cdbtest_standby ASYNC
					 NOAFFIRM delay=0 optional comp
					 ression=disable max_failure=0
					 max_connections=1 reopen=300 n
					 et_timeout=30 DB_UNIQUE_NAME=c
					 dbtest_standby valid_for=(onli
					 ne_logfile,all_roles)
log_archive_dest_20		     string

Esto no debería de ser problema, pero la realidad es que si que lo es, y no por un bug, sino por indicación del propio Oracle.
Para poder crear la configuración este parámetro deberá de estar limpio , así pues si lo vaciamos y ejecutamos el comando tendremos que:

SQL> alter system set log_archive_dest_2='';
System altered.
SQL> quit

[oracle@alone creacion_dataguard]$ dgmgrl sys/XX
DGMGRL> create configuration cdbtest_DG as primary database is cdbtest connect identifier  is cdbtest ;
Configuration "cdbtest_dg" created with primary database "cdbtest"
DGMGRL> 

Más información en escenarios en la creación de dataguard

deshabitando IP6 en Oracle Linux

Hoy vamos a ver una entrada rápida para dummies. Como deshabilitar el IPV6

El IPv6 es algo que seguramente no estemos usando y puede llegar a molestarnos tener activado, no es algo que deba de darnos errores, pero si que introduce ruido en el sistema, que es algo que no deseamos, así pues, vamos a ver de manera sencilla como quitarlo.

cambios en /etc/sysctl.conf

En el fichero de control del sistema añadiremos las siguientes entradas

# Deshabilitamos  IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Deshabilitamos de las interfaces

El siguiente paso es deshabilitarlo de las interfaces, para ello iremos al directorio /etc/sysconfig/network-scripts/ y para cada uno de los ficheros ifcfg- configuraremos la línea:

IPV6INIT=no

Deshabilitamos en el grub

En la parte de GRUB_CMDLINE_LINUX añadiremos también el comando para que no lo lance al inicio, así pues, añadiremos al fichero /etc/default/grub lo siguiente

ipv6.disable=1

y regeneramos el grub con

grub2-mkconfig -o /boot/grub2/grub.cfg

Tras esto reiniciamos el sistema, y ya estaremos libres de IPV6

Actualizacion
Parece ser que podemos encontrar problemas con el ssh y las X en Oracle Linux 7 .
Para solucionarlo, tendremos que ir al fichero /etc/ssh/sshd_config y modificar

#AddressFamily any
AddressFamily inet