jueves, 6 de septiembre de 2012

Respaldos incrementales en Oracle

En los foros de OTN hay mucha actividad, y es frecuente encontrar preguntas que parecen muy simples, pero al intentar responderlas aparecen condiciones que no fueron muy elaboradas originalmente, y casos que ponen a prueba nuestro real conocimiento de los conceptos.

Hace unos días encontré una de estas preguntas que vale la pena desarrollar: ¿RMAN comprime respaldos incrementales?. En realidad la pregunta terminó siendo: ¿por qué una estrategia de respaldos incrementales actualizables (o merge incremental backups) no toma en cuenta la compresión en RMAN?.

El camino corto a la respuesta es: sí se comprimen, aunque no todos los archivos generados por RMAN.

Para entender qué se respalda y qué se puede comprimir, voy a desarrollarlo acá con un ejemplo. Pueden ver la respuesta en inglés en el foro de OTN.

Primero, hay que leer la documentación oficial sobre este tipo de respaldos para entender los conceptos: http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmbckba.htm#CHDEHBFF

Luego de revisarla, podemos ver que un respaldo incremental actualizable se basa en una image copy, esto es una copia idéntica de los datafiles que no es posible comprimir con RMAN. A partir del primer respaldo completo incremental (conocido como de nivel 0) se toman respaldos incrementales usados para recuperar el respaldo anterior de nivel 0. Estos respaldos incrementales sí se pueden comprimir con la clausula COMPRESSED en RMAN.

Con un respaldo incremental actualizable se tiene un respaldo completo pronto para usar luego de cada respaldo incremental, sin necesidad de tomar un respaldo completo de la base cada vez.
Aunque esta estrategia parece muy buena, hay que analizar con cuidado si va a ser efectiva para nuestra instalación, ya que un respaldo incremental respalda los bloques que cambiaron desde el último respaldo completo en nivel 0, y por lo tanto puede llegar a ocupar tanto como un respaldo completo (por ejemplo si cambiaron todos los datos). Además agrega overhead por tener que buscar cambios en cada bloque, a menos que se use la funcionalidad de change block tracking (disponible en la versión Enterprise de la base de datos).

A continuación ejemplos. Primero de cómo funciona la compresión en respaldos incrementales, tomando respaldos de un tablespace chico para hacerlo simple.
oracle@oraculo:> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Wed Aug 15 19:09:03 2012

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


19:10:10 SYS@ent11g>select file_name, bytes/1024/1024 mb
from dba_data_files
where tablespace_name='USERS';

FILE_NAME                              MB
-------------------------------------- ----------
/u02/oradata/ent11g/users01.dbf        5


19:09:59 SYS@ent11g>col segment_name for a20
19:10:03 SYS@ent11g>col owner for a10
19:10:08 SYS@ent11g> select owner, segment_name, blocks*8/1024 mb
from dba_segments
where tablespace_name='USERS';

OWNER      SEGMENT_NAME                 MB
---------- -------------------- ----------
SCOTT      DEPT                      .0625
SCOTT      EMP                       .0625
SCOTT      SALGRADE                  .0625
SCOTT      PK_DEPT                   .0625
SCOTT      PK_EMP                    .0625

De este tablespace vamos a tomar un respaldo completo de nivel 0 sin compresión:
RMAN> backup incremental level 0 tablespace users;

Starting backup at 15/AUG/2012 19:08:10
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=17 device type=DISK
channel ORA_DISK_1: starting incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:08:12
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:08:15
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp tag=TAG20120815T190811 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 19:08:15
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 23480
-rw-r----- 1 oracle oinstall 1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp

Ahora respaldamos lo mismo pero comprimido:
RMAN> backup as compressed backupset incremental level 0 tablespace users;

Starting backup at 15/AUG/2012 19:11:35
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:11:36
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:11:37
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp tag=TAG20120815T191135 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 15/AUG/2012 19:11:37
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 23480
-rw-r----- 1 oracle oinstall 1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp
-rw-r----- 1 oracle oinstall 1114112 Aug 15 19:11 o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp

Los respaldos de nivel 0 son completos, por lo tanto ambos tienen los mismos datos, y se puede ver que el comprimido es más chico.

Ahora vamos a tomar un respaldo incremental (nivel 1). Primero sin compresión:
RMAN> backup incremental level 1 tablespace users;

Starting backup at 15/AUG/2012 19:13:08
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:13:09
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:13:10
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_TAG20120815T191308_82r7qog1_.bkp tag=TAG20120815T191308 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 15/AUG/2012 19:13:10
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 43160
-rw-r----- 1 oracle oinstall  1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp
-rw-r----- 1 oracle oinstall  1114112 Aug 15 19:11 o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191308_82r7qog1_.bkp

Y volvemos a respaldar lo mismo, nivel 1, pero comprimido:
RMAN> backup as compressed backupset incremental level 1 tablespace users;

Starting backup at 15/AUG/2012 19:13:33
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:13:33
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:13:34
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_TAG20120815T191333_82r7rg2c_.bkp tag=TAG20120815T191333 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 15/AUG/2012 19:13:34
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 43160
-rw-r----- 1 oracle oinstall  1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp
-rw-r----- 1 oracle oinstall  1114112 Aug 15 19:11 o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191308_82r7qog1_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191333_82r7rg2c_.bkp

Como se puede comprobar, la compresión en este caso no aporta nada, porque no hay datos nuevos.
Modificamos entonces algunos datos para ver realmente la compresión:
19:14:09 SYS@ent11g>create table dummy tablespace users as select * From dba_objects;

Table created.

select owner, segment_name, blocks*8/1024 mb
from dba_segments
where tablespace_name='USERS';

OWNER      SEGMENT_NAME                 MB
---------- -------------------- ----------
SCOTT      DEPT                      .0625
SCOTT      EMP                       .0625
SCOTT      SALGRADE                  .0625
SYS        DUMMY                         9
SCOTT      PK_DEPT                   .0625
SCOTT      PK_EMP                    .0625

6 rows selected.

Ahora repetimos el respaldo incremental comprimido:
RMAN> backup as compressed backupset incremental level 1 tablespace users;

Starting backup at 15/AUG/2012 19:15:03
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:15:03
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:15:06
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_TAG20120815T191503_82r7v837_.bkp tag=TAG20120815T191503 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 19:15:06

Y podemos comprobar que éste ahora incluye datos porque es mucho más grande que el anterior sin compresión:
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 43160
-rw-r----- 1 oracle oinstall  1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp
-rw-r----- 1 oracle oinstall  1114112 Aug 15 19:11 o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191308_82r7qog1_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191333_82r7rg2c_.bkp
-rw-r----- 1 oracle oinstall  1966080 Aug 15 19:15 o1_mf_nnnd1_TAG20120815T191503_82r7v837_.bkp

Otro tipo de respaldo incremental es el acumulado (cumulative en inglés). Éste tiene todos los cambios desde el último respaldo en nivel 0, por lo que va a ser más grande que un respaldo diferencial:
RMAN> backup incremental level 1 cumulative tablespace users;

Starting backup at 15/AUG/2012 19:16:25
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:16:26
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:16:29
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_TAG20120815T191625_82r7xtfj_.bkp tag=TAG20120815T191625 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 19:16:29
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 43160
-rw-r----- 1 oracle oinstall  1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp
-rw-r----- 1 oracle oinstall  1114112 Aug 15 19:11 o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191308_82r7qog1_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191333_82r7rg2c_.bkp
-rw-r----- 1 oracle oinstall  1966080 Aug 15 19:15 o1_mf_nnnd1_TAG20120815T191503_82r7v837_.bkp
-rw-r----- 1 oracle oinstall  8724480 Aug 15 19:16 o1_mf_nnnd1_TAG20120815T191625_82r7xtfj_.bkp

Respaldamos lo mismo pero esta vez con compresión:
RMAN> backup as compressed backupset incremental level 1 cumulative tablespace users;

Starting backup at 15/AUG/2012 19:16:52
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:16:53
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:16:56
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_TAG20120815T191652_82r7yojn_.bkp tag=TAG20120815T191652 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 19:16:56
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
total 43160
-rw-r----- 1 oracle oinstall  1376256 Aug 15 19:08 o1_mf_nnnd0_TAG20120815T190811_82r7gdxj_.bkp
-rw-r----- 1 oracle oinstall  1114112 Aug 15 19:11 o1_mf_nnnd0_TAG20120815T191135_82r7nrkv_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191308_82r7qog1_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:13 o1_mf_nnnd1_TAG20120815T191333_82r7rg2c_.bkp
-rw-r----- 1 oracle oinstall  1966080 Aug 15 19:15 o1_mf_nnnd1_TAG20120815T191503_82r7v837_.bkp
-rw-r----- 1 oracle oinstall  8724480 Aug 15 19:16 o1_mf_nnnd1_TAG20120815T191625_82r7xtfj_.bkp
-rw-r----- 1 oracle oinstall  1966080 Aug 15 19:16 o1_mf_nnnd1_TAG20120815T191652_82r7yojn_.bkp

Cómo se puede ver, este último respaldo tiene los mismos datos que el primer respaldo diferencial después de realizar los cambios en los datos, y es mucho más chico que el otro sin compresión.

Por último, el caso de respaldos incrementales actualizables (merged incremental). Estos son respaldos incrementales nivel 1 que luego se aplican al último respaldo nivel 0 disponible, para generar un nuevo nivel 0 actualizado.

Primero ejemplo, sin compresión:
RMAN> run {
 backup incremental level 1 for recover of copy with tag 'BKP_L0' tablespace users;
 recover copy of tablespace users with tag 'BKP_L0';
}

Starting backup at 15/AUG/2012 19:18:57
using channel ORA_DISK_1
no parent backup or copy of datafile 4 found
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
output file name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82r82l9g_.dbf tag=BKP_L0 RECID=1 STAMP=791407138
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 19:19:00

Starting recover at 15/AUG/2012 19:19:01
using channel ORA_DISK_1
no copy of datafile 4 found to recover
Finished recover at 15/AUG/2012 19:19:01

Éste genera un respaldo en nivel 0 aunque le hayamos indicado que sea nivel 1, porque no hay un respaldo nivel 0 de este tipo disponible (for recovery of copy).
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82r82l9g_.dbf
-rw-r----- 1 oracle oinstall 11804672 Aug 15 19:19 /u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82r82l9g_.dbf

Podemos ver que es ídentico al datafile original, porque es una image copy:
oracle@oraculo:~> ls -l /u02/oradata/ent11g/users01.dbf
-rw-r----- 1 oracle oinstall 11804672 Aug 15 19:26 /u02/oradata/ent11g/users01.dbf    

Hay que tener presente que las image copy no usan ningún tipo de compresión en RMAN (unused block/free space/binary). Esto es algo que se puede validar fácilmente:
RMAN> backup tablespace users;

Starting backup at 15/AUG/2012 19:26:23
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:26:23
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:26:25
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnndf_TAG20120815T192623_82r8jj6q_.bkp tag=TAG20120815T192623 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 15/AUG/2012 19:26:25
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnndf_TAG20120815T192623_82r8jj6q_.bkp
-rw-r----- 1 oracle oinstall 10059776 Aug 15 19:26 o1_mf_nnndf_TAG20120815T192623_82r8jj6q_.bkp

La siguiente vez que tomamos un respaldo incremental actualizable funciona diferente, porque ahora tiene un respaldo incremental completo (de nivel 0) disponible para actualizar, y por lo tanto puede tomar un respaldo incremental (de nivel 1):
RMAN> run {
 backup incremental level 1 for recover of copy with tag 'BKP_L0' tablespace users;
 recover copy of tablespace users with tag 'BKP_L0';
}

Starting backup at 15/AUG/2012 19:19:21
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 19:19:21
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 19:19:24
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82r83b3b_.bkp tag=BKP_L0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 19:19:24

Starting recover at 15/AUG/2012 19:19:25
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00004 name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82r82l9g_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82r83b3b_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82r83b3b_.bkp tag=BKP_L0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished recover at 15/AUG/2012 19:19:27
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82r83b3b_.bkp
total 43160
-rw-r----- 1 oracle oinstall    40960 Aug 15 19:19 o1_mf_nnnd1_BKP_L0_82r83b3b_.bkp

Este respaldo fue muy chico porque no hubo actividad en el tablespace desde el respaldo anterior.

Ahora lo que realmente nos interesa ver: ¿que ocurre cuando usamos la opción de compresión con un respaldo incremental actualizable?.
run {
 backup as compressed backupset incremental level 1 for recover of copy with tag 'BKPC_L0' tablespace users;
 recover copy of tablespace users with tag 'BKPC_L0';
}

RMAN>
Starting backup at 15/AUG/2012 21:35:55
using channel ORA_DISK_1
no parent backup or copy of datafile 4 found
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
output file name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82rj3gtb_.dbf tag=BKPC_L0 RECID=3 STAMP=791415359
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:04
Finished backup at 15/AUG/2012 21:36:01

RMAN>
Starting recover at 15/AUG/2012 21:36:03
using channel ORA_DISK_1
no copy of datafile 4 found to recover
Finished recover at 15/AUG/2012 21:36:03

Como fue la primera vez que tomamos uno de este tipo, se hizo un respaldo nivel 0 (el anterior había sido con la etiqueta BKP_L0, ahora es BKPC_L0 y eso lo hace distinto):
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/datafile/
total 23088
-rw-r----- 1 oracle oinstall 11804672 Aug 15 19:19 o1_mf_users_82r82l9g_.dbf
-rw-r----- 1 oracle oinstall 11804672 Aug 15 21:35 o1_mf_users_82rj3gtb_.dbf

La siguiente vez que lo ejecutamos ya vimos que va a tomar un incremental nivel 1:
RMAN> run {
 backup as compressed backupset incremental level 1 for recover of copy with tag 'BKPC_L0' tablespace users;
 recover copy of tablespace users with tag 'BKPC_L0';
}

Starting backup at 15/AUG/2012 21:49:07
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 21:49:08
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 21:49:11
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjw4fc_.bkp tag=BKPC_L0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 21:49:11

Starting recover at 15/AUG/2012 21:49:11
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00004 name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82rj3gtb_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjw4fc_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjw4fc_.bkp tag=BKPC_L0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished recover at 15/AUG/2012 21:49:13
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjw4fc_.bkp
-rw-r----- 1 oracle oinstall    40960 Aug 15 21:49 o1_mf_nnnd1_BKPC_L0_82rjw4fc_.bkp

Otra vez, al no tener cambios en los datos del tablespace, el respaldo incremental no tiene datos.
Así que para ver la compresión, generamos una tabla con datos y repetimos el respaldo:
21:50:05 SYS@ent11g>create table dummy tablespace users as select * From dba_objects;

Table created.

Elapsed: 00:00:04.98
RMAN> run {
 backup as compressed backupset incremental level 1 for recover of copy with tag 'BKPC_L0' tablespace users;
 recover copy of tablespace users with tag 'BKPC_L0';
}
2> 3> 4>
Starting backup at 15/AUG/2012 21:50:34
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 21:50:34
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 21:50:38
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjyvdb_.bkp tag=BKPC_L0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04
Finished backup at 15/AUG/2012 21:50:38

Starting recover at 15/AUG/2012 21:50:38
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00004 name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82rj3gtb_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjyvdb_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjyvdb_.bkp tag=BKPC_L0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished recover at 15/AUG/2012 21:50:42
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKPC_L0_82rjyvdb_.bkp
-rw-r----- 1 oracle oinstall  1966080 Aug 15 21:50 o1_mf_nnnd1_BKPC_L0_82rjyvdb_.bkp

Ahora sí tenemos un respaldo con datos, y podemos comparar cuánto ocupa el mismo respaldo sin compresión. Repitiendo el mismo respaldo incremental anterior BKP_L0 tendríamos los mismos cambios, ya que ese usa otra image copy para recuperar (no es el BKPC_L0 que usamos ahora).

Para evitar dudas, tomo un nuevo respaldo incremental y repito las sentencias de drop/create table para tener los mismos cambios que en el respaldo anterior:
-- Respaldo:
RMAN> run {
 backup incremental level 1 for recover of copy with tag 'BKP_L0' tablespace users;
 recover copy of tablespace users with tag 'BKP_L0';
}

RMAN>
Starting backup at 15/AUG/2012 21:51:37
using channel ORA_DISK_1

channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 21:51:37
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 21:51:40
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82rk0t3h_.bkp tag=BKP_L0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 21:51:40

RMAN>
Starting recover at 15/AUG/2012 21:51:44
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00004 name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82r82l9g_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82rk0t3h_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82rk0t3h_.bkp tag=BKP_L0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished recover at 15/AUG/2012 21:51:49
-- Genero cambios:
21:51:11 SYS@ent11g>drop table dummy;

Table dropped.

Elapsed: 00:00:01.27
21:52:02 SYS@ent11g>create table dummy tablespace users as select * From dba_objects;

Table created.
-- Respaldo de nuevo:
RMAN> run {
 backup incremental level 1 for recover of copy with tag 'BKP_L0' tablespace users;
 recover copy of tablespace users with tag 'BKP_L0';
}2> 3> 4>

Starting backup at 15/AUG/2012 21:52:22
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u02/oradata/ent11g/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15/AUG/2012 21:52:23
channel ORA_DISK_1: finished piece 1 at 15/AUG/2012 21:52:26
piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82rk280f_.bkp tag=BKP_L0 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 15/AUG/2012 21:52:26

Starting recover at 15/AUG/2012 21:52:26
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00004 name=/u01/app/oracle/fast_recovery_area/ENT11G/datafile/o1_mf_users_82r82l9g_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82rk280f_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15/o1_mf_nnnd1_BKP_L0_82rk280f_.bkp tag=BKP_L0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished recover at 15/AUG/2012 21:52:28
-- veo los archivos generados por el respaldo incremental:
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/backupset/2012_08_15
-rw-r----- 1 oracle oinstall  1966080 Aug 15 21:50 o1_mf_nnnd1_BKPC_L0_82rjyvdb_.bkp
-rw-r----- 1 oracle oinstall  9707520 Aug 15 21:51 o1_mf_nnnd1_BKP_L0_82rk0t3h_.bkp
-rw-r----- 1 oracle oinstall  8732672 Aug 15 21:52 o1_mf_nnnd1_BKP_L0_82rk280f_.bkp
-- veo los archivos generados por el respaldo image copy:
oracle@oraculo:~> ls -lrt /u01/app/oracle/fast_recovery_area/ENT11G/datafile/ &
total 23088
-rw-r----- 1 oracle oinstall 11804672 Aug 15 19:19 o1_mf_users_82r82l9g_.dbf
-rw-r----- 1 oracle oinstall 11804672 Aug 15 21:49 o1_mf_users_82rj3gtb_.dbf

Como se puede ver, solo el respaldo incremental (level 1) se comprime.

Fue un ejemplo largo, pero tiene todo lo necesario para entender la compresión con respaldos incrementales en todas sus variantes.

Un saludo.

lunes, 20 de agosto de 2012

OTN y Real World Performance Tour Montevideo 2012

Hace un par de semanas tuvimos el gusto de presenciar en Montevideo del mayor evento de tecnología Oracle realizado alguna vez en nuestro medio. Suena muy fuerte denominarlo así cuando ya tuvimos dos OTN tour con la visita de expertos reconocidos en la comunidad Oracle. Pero el hecho de que nos visitara por primera vez Tom Kyte, merece esa denominación.

Y la apuesta fue grande, porque desde la dirección del UYOUG tomamos algunas decisiones que nos generaron mucho más trabajo, con el objetivo de aprovechar al máximo las presentaciones de los speakers visitantes: no incluir presentadores locales, que ya pudieron participar en el evento de mayo, y separar el evento en dos días. Esto último fue único entre todos los países de latinoamérica que fueron parte del Tour este año. Implicó duplicar gastos y forzó a cobrar entrada para poder solventarlo, ya que a pesar de tener esta vez más sponsor que años anteriores, no alcanzó para cubrir los gastos sin cobrar entrada.

Por suerte hubo 100 personas que nos acompañaron en este esfuerzo durante los dos días, lo que nos deja muy contentos, colma nuestras expectativas y nos dan energía para continuar. Muchas gracias a todos por el apoyo!.
Esta vez además de aprovechar las charlas, hubo dos afortunados que se llevaron regalos: un libro autografiado por Tom Kyte y un curso de Oracle University. Felicitaciones!.

Si siguieron la cobertura en vivo por twitter seguramente ya estén al tanto de cuales fueron las presentaciones, cuyo material ya está publicado en el sitio del grupo. También tenemos fotos, en una nueva página con fotos de eventos pasados, y compartimos algunas más en google.


Para quienes no pudieron asistir una breve reseña de lo que pasó: el lunes arrancó con un par de cambios imprevistos de agenda: Patanjali tuvo que cancelar a último momento viniendo en su lugar Noel Portugal, y Sergio Tribsts no pudo llegar a tiempo desde Brasil por la niebla por lo que sus presentaciones previstas para la mañana se trasladaron a la tarde, agregando otra de Francisco Muñoz a la mañana. La agenda quedó actualizada en el sitio al comenzar el evento para que se pudieran tener los cambios a mano.

Una vez presentados estos ajustes, comenzó Tom Kyte hablando sobre "Big data" (su más reciente presentación), y luego comenzaron dos tracks simultáneos: uno para desarrolladores, con Dimitri, Dana y Bruno Borges, y otro para administradores con Francisco, Sergio, Noel y Tim Tow (quien presentó de forma remota).

El segundo día fue exclusivo de Tom, Graham y Andrew que estuvieron en el escenario al mismo tiempo, con una dinámica muy entretenida presentando problemas de performance y cómo resolverlos.

Para que estos eventos fueran posible, hay muchos a quién agradecer: a OTN por sponsorear la venida de los speakers, a Francisco por armar y coordinar el Tour en todos los países, a los sponsors que esta vez fueron Oracle (Diamante), Tilsor y BSE (Gold), y Sofis, Quanam y Arnaldo Castro (Bronze). Y también a Lalo de Tilsor que trabajó como uno más del grupo dando una mano en la organización.


En estos días vamos a estar enviando las encuestas y los certificados de asistencia, y publicitando la capacitación en BI dentro de dos semanas a cargo de Hans Forbrich.

Nos vemos.

sábado, 4 de agosto de 2012

Agente EM 10.2 con errores intermitentes

Hace unos días una instalación Oracle 10G con Grid Control empezó a generar mensajes con el subject: "EM Alert: Unreachable Start: test.myhost.com - Agent has stopped monitoring. The follo..."

El contenido del mensaje incluía este texto:

    Target Name=test.myhost.com
    Target Type=Host
    Host=test.myhost.com
    Metric=Status
    Severity=Unreachable Start
    Message=Agent has stopped monitoring. The following errors are reported : COLL_DISABLED|DISK_FULL.
    Notification Rule Name=Host Availability and Critical States
    Notification Rule Owner=SYSMAN
    Notification Count=1


Seguido de otro mensaje "EM Alert: Unreachable Clear: test.myhost.com:1831 - Agent Unreachability is cleared. The cu..."

Y este otro mensaje contenía el texto:
    "Message=Agent Unreachability is cleared. The current status of the target is UP."

Una búsqueda de este mensaje en el sitio de soporte muestra la nota ID 396238.1 - 'emctl status agent' Command Shows "Collection Status Disabled By Upload Manager", que describe este caso e indica revisar el log del agente para encontrar el motivo del error.

Así que revisando el archivo sysman/log/emagent.trc en mi $GRID_HOME (/u01/app/oracle/product/10.2.0/GridControl10g/agent10g/test.myhost.com) se ve que el problema fue que se excedió la cantidad máxima de datos permitida para enviar al repositorio, de 50Mb por defecto:

    [oracle@test]$ tail sysman/log/emagent.trc

    2012-07-09 10:30:14,707 Thread-582644352 WARN  collector: enable collector
    2012-07-09 10:30:14,783 Thread-582644352 WARN  collector: Regenerating all DefaultColls
    2012-07-09 10:43:52,823 Thread-137835136 ERROR upload: Exceeded max. amount of upload data: 26 files, 51.584184 MB Data. 88.19% of disk used. Disabling collections.
    2012-07-09 10:43:52,823 Thread-137835136 WARN  collector: Disable collector
    2012-07-09 10:44:52,343 Thread-128397952 WARN  upload: Amount of upload data lowered sufficiently. enabling collections and regenerating metadata
    2012-07-09 10:44:52,343 Thread-128397952 WARN  TargetManager: Regenerating all Metadata
    2012-07-09 10:44:52,599 Thread-128397952 WARN  upload: Truncating value of "SHORT_NAME" from "Average Synchronous Single-Block Read Latency (ms)" to "Average Synchronous Single-Block Read La"
    2012-07-09 10:44:53,078 Thread-128397952 WARN  collector: enable collector


Siguiendo las recomendaciones de la nota, bajamos el agente y ampliamos este valor a 80mb y volvemos a iniciar el agente:

    [oracle@test]$ bin/emctl stop agent
    Oracle Enterprise Manager 10g Release 4 Grid Control 10.2.0.4.0.
    Copyright (c) 1996, 2007 Oracle Corporation.  All rights reserved.
    Stopping agent ... stopped.

    [oracle@test]$ vi sysman/config/emd.properties
    # UploadMaxBytesXML=50
    UploadMaxBytesXML=80

    [oracle@test]$ bin/emctl start agent
    Oracle Enterprise Manager 10g Release 4 Grid Control 10.2.0.4.0.
    Copyright (c) 1996, 2007 Oracle Corporation.  All rights reserved.
    Starting agent ........ started.


Luego validamos que el agente está funcionando normalmente:

    [oracle@test]$ bin/emctl status agent
    Oracle Enterprise Manager 10g Release 4 Grid Control 10.2.0.4.0.
    Copyright (c) 1996, 2007 Oracle Corporation.  All rights reserved.
    ---------------------------------------------------------------
    Agent Version     : 10.2.0.4.0
    OMS Version       : 10.2.0.4.0
    Protocol Version  : 10.2.0.4.0
    Agent Home        : /u01/app/oracle/product/10.2.0/GridControl10g/agent10g/test.myhost.com
    Agent binaries    : /u01/app/oracle/product/10.2.0/GridControl10g/agent10g
    Agent Process ID  : 7537
    Parent Process ID : 9232
    Agent URL         : https://test.myhost.com:1831/emd/main
    Repository URL    : https://oragrdp1.myhost.com:1159/em/upload
    Started at        : 2012-07-04 07:22:37
    Started by user   : oracle
    Last Reload       : 2012-07-05 14:09:50
    Last successful upload                       : 2012-07-09 10:47:33
    Total Megabytes of XML files uploaded so far : 25865.11
    Number of XML files pending upload           :        0
    Size of XML files pending upload(MB)         :     0.00
    Available disk space on upload filesystem    :    12.01%
    Last successful heartbeat to OMS             : 2012-07-09 10:46:57
    ---------------------------------------------------------------

    Agent is Running and Ready

Con esto los mensajes de error no se generaron nuevamente. Un saludo.

martes, 31 de julio de 2012

Conferencia MySQL / NOSQL & Cloud en Buenos Aires

Un poco tarde pero vale la pena recordarlo: el pasado 26 de junio se realizó en el hotel Hilton de Buenos Aires la primera conferencia de usuarios de MySQL / NoSQL & Cloud para América Latina, de nombre "MySQL NoSQL & Cloud Conference & Expo LA", organizada por Binlogic.

Tuve la suerte de poder participar y además presentar sobre un tema en que el que estoy trabajando desde hace un tiempo, MySQL en infraestructura de estándares de salud (disponible en mi slideshare).

La conferencia tuvo tres días de temas variados en dos tracks simultáneos, de la mano de expertos que no se ven seguido por estos lados, como Colin Charles de MariaDB (Malaysia), Gerardo Narvaja de Tokutek (USA), Sheeri Cabral de Mozilla Foundation (USA), Ronald Bradford (USA), Massimo Brignoli y Max Mether de SkySQL (Italia y Finlandia), Kentoku Shiba de Spider MySQL (Japón), Pedro Andrade de MySQL, además de varios speakers regionales (Argentina y Brasil).

Es una suerte para los que estamos cerca que Santiago se haya animado a organizar un evento de este calibre, y mejor aún que por el éxito obtenido se esté planificando la edición 2013. Hay que estar atentos a la fecha, y seguramente nos encontremos ahí.

Un saludo.

lunes, 16 de julio de 2012

Workshop UYOUG y taller de alta disponiblidad

En mayo comenzaron los eventos del grupo de usuarios Oracle del Uruguay. En realidad el trabajo comienza bastante antes para poder realizar estos eventos.

Este año redoblamos la apuesta con la comunidad, agregando más eventos locales que años anteriores (Mayo, Agosto y Noviembre) y sumando eventos de capacitación. El detalle lo pueden ver en la página de eventos del UYOUG.

Tomamos ésta decisión porque creemos necesario contar con más ámbitos de intercambio de conocimiento, con eventos locales donde puedan exponer todos los interesados, aprovechar más la presencia de speakers extranjeros en eventos como el OTN tour (con una agenda que incluye la mayor cantidad posible de sus ponencias), y con talleres de capacitación de la mano de expertos que permiten aprender de una forma distinta a la ofrecida en nuestro medio: no sólo conocimiento, sino además experiencia, y en mercados de otras dimensiones al nuestro.

Por suerte este año se sumaron varios sponsors, lo que permite realizar los eventos de speakers locales de forma gratuita, y cubrir gran parte del costo de organizar los eventos de Agosto (OTN Tour y Real World Performance Tour).
Esperamos que el costo mínimo que estamos obligados a cobrar por los eventos de Agosto no desalienten la participación, ya que vamos a tener a grandes speakers que llegan por primera vez a nuestro país, destacando la presencia de Tom Kyte.

Así que esperamos que nos acompañen en estas iniciativas, y aprovechen al máximo la presencia de estos gurúes que no se ven seguido por acá.

Volviendo a los eventos de mayo que me interesa contarles aquí, el Workshop con speakers locales tuvo buena asistencia, temas variados y el cierre a cargo de Hans Forbrich, con una introducción al tema que desarrolló la semana siguiente en el taller de tres días, que también tuvo una buena asistencia.

Todas las presentaciones están disponibles en el sitio del UYOUG, y les dejo acá la mía.



Un saludo.

sábado, 30 de junio de 2012

Mi Collaborate 2012

El tiempo ha pasado muy rápido para mí en los últimos meses, y hay mucho por contar.
Tengo varios borradores en edición desde hace meses, así que vamos a ponernos al día con un post por tema importante reciente para que sean fácil de ubicar a futuro. Comenzando en éste sobre mi experiencia en el evento Collaborate 2012 de fines de abril en Las Vegas.

Hubo un poco más de 4000 asistentes durante los 4 días y medio del evento, lo que es una multitud moviéndose en las dos plantas del centro de convenciones, entre decenas de salones de conferencias. Fueron días con un mínimo diez horas de trabajo, más el estrés adicional durante los primeros días de repasar las presentaciones que tenía que dar.
Días muy largos pero completamente disfrutables. Pude escuchar excelentes reconocidos presentadores como Tom Kyte, Arup Nanda, Craig Shallahamer, Alex Gorbachev, Kai Yu y Hans Forbrich, y varios más que no conocía y fueron un grato descubirimento, como Martin Klier y Yury Velikanov. También Edelweiss lo hizo muy bien, a pesar que no es mi tema, con una excelente presentación sobre Oracle BI Publisher a sala llena.

El lunes fue mi primer presentación sobre MySQL, y pese a coincidir con la única de Markus Michalewicz (sobre Oracle RAC), hubo decenas de asistentes que la siguieron atentos y continuaron con preguntas una vez terminada.
Mi segunda presentación fue el martes y trataba de RMAN. Con la sala casi llena se hizo sentir el estrés adicional por ser en otro idioma, obligandome a escuchar varias veces las preguntas que me hicieron para poder entenderlas. Al final también hubo muchos interesados en profundizar algunos puntos, lo que fue más fácil de manejar mano a mano.

Recién al final de la conferencia, después de cuatro días agotadores, pudimos salir a conocer algo de la ciudad, y descansar. El Gran Cañon es definitivamente una visita imprescindible. En lo previo puede parecer algo familiar por haberlo visto en muchas películas, pero en vivo es una experiencia inigualable por sus dimensiones.

En resumen, recomendable por donde se lo mire. Junto a la experiencia de presentar por primera vez en inglés, hicieron que la inversión de asistir se justificara con creces.

Cómo se llega a dar una presentación en Collaborate?. Hay que estar atento al anuncio del Call for papers, que para 2012 tuvo como fecha límite el 14 de Octubre de 2011, y enviar resúmenes de charlas propuestas. Un par de meses después se recibe la respuesta del comité evaluador (el 8 de Diciembre) indicando si alguna fue aceptada junto con los pasos a seguir. Lo más importante es la fecha límite para entregar la versión completa (y final) de las presentaciones, que deben ir acompañadas de un white paper, lo que hace que el esfuerzo sea mucho mayor que el requerido para crear una presentación. Este límite fue el primero de marzo.
Ser aceptado implica que se tiene una entrada gratuita para el evento, que de otra forma tiene un costo de 1600 dólares (aunque hay descuentos por inscripción anticipada), pero no incluye los gastos, pasaje, estadía ni viáticos. O sea que uno se tiene que hacer cargo de todos los gastos. Claramente algo muy costoso para nosotros estando tan lejos, lo que muestra la importancia de tener eventos regionales técnicos de buen nivel, accesibles para la mayoría de los técnicos que no pueden afrontar gastos como éste.

Un saludo.

miércoles, 11 de abril de 2012

Collaborate 2012

En poco más de una semana comienza en USA uno de los eventos técnicos independientes más grandes del mundo Oracle: Collaborate.

¿Porqué es tan bueno?. Los números hablan por si solos.

Comienza el domingo 22 con un workshop de 6 horas enfocado en un solo tema.
Hay 12 sesiones para elegir, y muchos de los presentadores y temas son imperdibles. Una pena que solo se pueda elegir uno. ¿Cuál?
Tom Kyte y compañia hablando de Real World Performance
Craig Shallamer sobre Performance forecasting
Kai Yu sobre Cloud Control 12c
Alex Gorbachev sobre High availability en 11.2

Y la lista sigue...

De lunes a jueves se pueden presenciar 24 sesiones de una hora, y nuevamente eligiendo entre 20 posibles cada vez.
El total de presentaciones no es 24x20 porque no todas las horas tienen todas las salas habilitadas, y no todos los días se tiene el mismo horario, que varía de 8:00 a 18:00.
Pero de todas formas, es un número brutal. Y los tópicos muy variados.

Esta además de ser mi primer visita a un Collaborate, también será mi primer exposición en eventos en USA, ya que me aceptaron dos charlas:
 #492 - High Availability Boot Camp: RMAN - Eliminate the Mystery (va el martes 24 a las 16:30),
 #493 - Administering MySQL for Oracle DBAs (lunes 23 a las 17:00).

Así que va a ser una experiencia completa, y de la que podremos compartir detalles en el próximo evento del UYOUG un par de semanas después.

Un saludo.

sábado, 3 de marzo de 2012

Oracle Day en Montevideo

El miércoles pasado tuvimos la suerte de contar en Montevideo con una gran jornada organizada por Oracle en dos eventos: Oracle Day y Oracle Developers Day.

Fue una jornada muy larga pero muy interesante, y con una organización excelente. Felicitaciones a Valeria, Facundo, y todos los involucrados en la misma.

Usar presentaciones cortas (media hora), variedad de temas, y expositores con muy buen dominio del tema, fueron elecciones muy acertadas.

Hacía muchos años que este tipo de eventos no llegaban a Uruguay, y ojalá que sea el comienzo de un hábito. Desde el UYOUG nos enfocamos en contenido técnico, y este tipo de eventos es el complemento perfecto y necesario, ya que se puede tener una visión general de la variedad de productos de Oracle, para luego profundizar y ver detalles de los mismos en los encuentros del UYOUG.

Tuvimos la oportunidad de dar a conocer los planes del UYOUG para este año, y resumir lo hecho hasta ahora. Dejo el link a la presentación para quienes se lo perdieron.