En el día de hoy estuve revisando un Exadata X5, en el cual pudimos verificar que no estaba cumpliendo con las políticas recomendadas para el tamaño de REDO, para las maquinas de computo
Oracle Exadata Machine.
Oracle, en su documentación oficial, recomienda que el tamaño de los REDOLOG file deben ser >= 4GB y < 32GB.
Como detalle, es importante saber que no es ideal superar la marca de los 32GB , salvo que se lo requiera el soporte de Oracle.
Esta recomendacion surge, por que la máquina Exadata puede soportar una tasa extrema de I/O.
Con la última versión de Exadata X-6, se pueden realizar operaciones de I/O de lectura de base de datos de 5 KB hasta 8 GB, o operaciones de escritura de flash de 8 MB de 5 MB por segundo por rack completo.
Revisamos la base de datos en el Exadata:
SQL> SELECT a.group#, b.STATUS, a.MEMBER, b.BYTES/1024/1024 "Size (Mb)" FROM gv$logfile a, gv$log b WHERE a.group# = b.group# ; GROUP# STATUS MEMBER Size (Mb) ---------- ---------------- -------------------------------------------------------------------------------- ---------- 1 INACTIVE +RECO_EXA/AMX/onlinelog/AMX_redolog_t1g1m2.log 512 1 INACTIVE +DATA_EXA/AMX/onlinelog/AMX_redolog_t1g1m1.log 512 1 INACTIVE +RECO_EXA/AMX/onlinelog/AMX_redolog_t1g1m2.log 512 1 INACTIVE +DATA_EXA/AMX/onlinelog/AMX_redolog_t1g1m1.log 512 ... ... 6 INACTIVE +DATA_EXA/AMX/onlinelog/AMX_redolog_t2g6m1.log 512 6 INACTIVE +RECO_EXA/AMX/onlinelog/AMX_redolog_t2g6m2.log 512 6 INACTIVE +DATA_EXA/AMX/onlinelog/AMX_redolog_t2g6m1.log 512 6 INACTIVE +RECO_EXA/AMX/onlinelog/AMX_redolog_t2g6m2.log 512 48 rows selected. SQL>
Algunas consideraciones:
- Si la aplicación está generando una gran cantidad de LOG SWITCH, 4 GB puede que no sea suficiente y debemos considerar aumentarlo.
- Los registros de REDO de tamaño inferior a 4GB, pueden llevar a interrupciones de registro innecesarios, ya que en su mecanismo de control causan cuellos de botella en el rendimiento.
- Se puede comenzar con el tamaño recomendado de 4 GB y observar los cambios de comportamiento antes de que decidamos aumentar o disminuir el tamaño del REDO.
Idealmente, los archivos de registro de REDO on line deben tener el mismo tamaño y estar configurados para cambiar aproximadamente una vez por hora durante la actividad normal.
Deben cambiar en una cota de tiempo no inferior a 20 minutos durante el tiempo de actividad máxima.
Debe haber un mínimo de cuatro grupos de REDO online para evitar que LGWR espere a que un grupo, para que esté disponible; ello podria ser por que un grupo puede no estar disponible aún debido a que no se ha completado el checkpoint o el grupo aún no ha sido archivado.
Solución:
Procedimos a realizar los siguientes cambios:
- Creamos los GRUPOS nuevos, aqui vemos un ejemplo:
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 12 ( '+DATA_EXA2A') SIZE 4096M;
- Verificamos el estado INACTIVE, UNUSED
SQL> select INST_ID, group#, THREAD#, MEMBERS, ARCHIVED, STATUS from gv$log order by INST_ID ASC; INST_ID GROUP# THREAD# MEMBERS ARC STATUS ---------- ---------- ---------- ---------- --- ---------------- 1 6 2 2 YES INACTIVE 1 5 1 2 YES INACTIVE ...
- En el caso que no aparezcan con estos estados, debemos hacer un checkpoint en general para que puedan cerrarse.
alter system switch logfile; alter system checkpoint; alter system checkpoint global;
- Dropeamos los disponibles, aqui vemos un ejemplo:
SQL> ALTER DATABASE DROP LOGFILE GROUP 1; Database altered. SQL> ALTER DATABASE DROP LOGFILE GROUP 3; Database altered. SQL>
- Asi es como quedo organizado nuestra Base de datos en EXADATA:
SQL> SELECT a.group#, b.STATUS, a.MEMBER, b.BYTES/1024/1024 "Size (Mb)" FROM gv$logfile a, gv$log b WHERE a.group# = b.group#; GROUP# STATUS MEMBER Size (Mb) ---------- ---------------- -------------------------------------------------------------------------------- ---------- 13 CURRENT +DATA_EXA/AMX/onlinelog/group_13.570.939746993 4096 13 CURRENT +DATA_EXA/AMX/onlinelog/group_13.570.939746993 4096 14 UNUSED +DATA_EXA/AMX/onlinelog/group_14.469.939747011 4096 14 UNUSED +DATA_EXA/AMX/onlinelog/group_14.469.939747011 4096 15 UNUSED +DATA_EXA/AMX/onlinelog/group_15.527.939747047 4096 15 UNUSED +DATA_EXA/AMX/onlinelog/group_15.527.939747047 4096 16 UNUSED +DATA_EXA/AMX/onlinelog/group_16.285.939747059 4096 16 UNUSED +DATA_EXA/AMX/onlinelog/group_16.285.939747059 4096 17 INACTIVE +DATA_EXA/AMX/onlinelog/group_17.427.939747075 4096 17 INACTIVE +DATA_EXA/AMX/onlinelog/group_17.427.939747075 4096 18 INACTIVE +DATA_EXA/AMX/onlinelog/group_18.485.939747089 4096 18 INACTIVE +DATA_EXA/AMX/onlinelog/group_18.485.939747089 4096 19 CURRENT +DATA_EXA/AMX/onlinelog/group_19.541.939747099 4096 19 CURRENT +DATA_EXA/AMX/onlinelog/group_19.541.939747099 4096 20 UNUSED +DATA_EXA/AMX/onlinelog/group_20.612.939747113 4096 20 UNUSED +DATA_EXA/AMX/onlinelog/group_20.612.939747113 4096 13 CURRENT +DATA_EXA/AMX/onlinelog/group_13.570.939746993 4096 13 CURRENT +DATA_EXA/AMX/onlinelog/group_13.570.939746993 4096 14 UNUSED +DATA_EXA/AMX/onlinelog/group_14.469.939747011 4096 14 UNUSED +DATA_EXA/AMX/onlinelog/group_14.469.939747011 4096 15 UNUSED +DATA_EXA/AMX/onlinelog/group_15.527.939747047 4096 15 UNUSED +DATA_EXA/AMX/onlinelog/group_15.527.939747047 4096 16 UNUSED +DATA_EXA/AMX/onlinelog/group_16.285.939747059 4096 16 UNUSED +DATA_EXA/AMX/onlinelog/group_16.285.939747059 4096 17 INACTIVE +DATA_EXA/AMX/onlinelog/group_17.427.939747075 4096 17 INACTIVE +DATA_EXA/AMX/onlinelog/group_17.427.939747075 4096 18 INACTIVE +DATA_EXA/AMX/onlinelog/group_18.485.939747089 4096 18 INACTIVE +DATA_EXA/AMX/onlinelog/group_18.485.939747089 4096 19 CURRENT +DATA_EXA/AMX/onlinelog/group_19.541.939747099 4096 19 CURRENT +DATA_EXA/AMX/onlinelog/group_19.541.939747099 4096 20 UNUSED +DATA_EXA/AMX/onlinelog/group_20.612.939747113 4096 20 UNUSED +DATA_EXA/AMX/onlinelog/group_20.612.939747113 4096 32 rows selected. SQL>