¿Qué es la OFA?

Hace poco, por una instalación que tuve que hacer en mi Ubuntu y que está generando un nuevo post en este blog acerca de dicha instalación, me di cuenta que no he seguido al pie de la letra las reglas oficiales del estándar dictadas por Oracle al momento de instalar sus productos. De esta forma, me surgió la idea de explicar aquí cómo es que debe ser dicha instalación de acuerdo a dicho estándar. Este estándar se llama OFA u Optimal Flexible Architecture. (Arquitectura flexible óptima por su traducción al español).

¿Qué es la OFA?

Como ya lo comenté en el párrafo anterior, es un estándar de cómo se deben instalar las aplicaciones de Oracle en una computadora o servidor. De esta forma, se puede:

  • Organizar grandes cantidades de datos y software en el disco para mantener un orden y para evitar cuellos de botella.
  • Facilitar tareas administrativas sobre la misma información, como respaldos.
  • Facilitar el cambio entre distintas bases de datos Oracle.
  • Manejar de manera adecuada el crecimiento de las bases de datos Oracle.
  • Ayudar a evitar la defragmentación y evitar la contención de datos.

Características de la OFA

Una instalación correcta de la OFA, ayuda en los siguientes rubros:

  • Organización de File Systems (o directorios). Se mantienen organizados facilitando la administración de la información como agregar datos, usuarios, crear bases de datos o incluso, agregar hardware.
  • Cargas distribuidas de I/O. Al estar distribuidos los distintos archivos de datos y aplicación, en distintos discos (file systems), se facilita la paralelización de tal forma que se mejora el performance.
  • Soporte de Hardware. En muchos casos, se puede prevenir la compra de hardware al organizar de manera correcta la información.
  • Prevención contra fallas de drives. Cuando se distribuyen las aplicaciones en más de un disco, se evita que cuando uno falle, afecte a otras aplicaciones.
  • Distribución de directorios home de Oracle. Distintos directorios home, pueden ser distribuidos en distintos discos o file systems así como su contenido.
  • Integridad de directorios home de login. Se pueden agregar, mover o borrar directorios home de login sin tener que revisar programas que hacen referencia a ellos.
  • Independencia de subdirectorios Unix. Al usar distintos subdirectorios de Unix y categorizándolos para una mínima afectación entre archivos de distintas categorías.
  • Soporta ejecución concurrente de aplicaciones. Al estar todo debidamente separado, se pueden tener por ejemplo, escenarios en los cuales por ejemplo, se puede tener una versión de pruebas para una nueva base de datos sin tener que prescindir de la anterior. Una vez probada y verificada, el hacer el upgrade de la original resulta muy fácil.
  • Separa información administrativa para cada base de datos. De ésta forma, se gana mucha ventaja al administrar las bases de datos.
  • Usa nombres de archivos de base de datos consistentes. Los archivos de la base de datos deben tener nombres adecuados que los distingan de otro tipo de archivos y al mismo tiempo, saber a qué base de datos y tablespace pertenecen. Los control files, redo log files y data files, se identifican de manera fácil.
  • Separación de contenido de tablespaces. El contenido de los tablespaces, es separado para minimizar la fragmentación y la contención de I/O, así como maximizar la administración de los mismos.

Implementado la OFA

En Windows

En este sistema operativo, es bastante simple la forma en que se instalan los productos de Oracle. Se crea un directorio en algún disco donde tengamos espacio suficiente. El directorio deberá ser llamado oracle, dentro del mismo, se crea un subdirectorio llamado product; en este momento, ya tenemos un directorio del tipo c:\oracle\product, éste se conoce e identificará como el ORACLE_BASE. Variable de ambiente que se usa en distintas ocasiones, al instalar algún software o simplemente para identificar el lugar donde se instalan las aplicaciones de Oracle.

En el ORACLE_BASE, se instalarán todos los productos de Oracle. En mi gráfica del ejemplo, se ven por ejemplo un directorio para el Developer Suite 10g y para el Developer Suite 6i entre otros.

Para instalar la base de datos, se usa un directorio extra con el número oficial general de la distribución que se está instalando. En mi caso, la 10.2.0. Para ver el detalle del formato de las versiones de la base de datos de Oracle, pueden visitar mi post: Versión de la base de datos. Muy bien, entonces ya tenemos propiamente mi directorio principal para la OFA y sus respectivos subdirectorios para las aplicaciones de Oracle que tendré. Ahora nos enfocaremos a la base de datos explícitamente.

Según la OFA, debe haber bajo el directorio del release (10.2.0), un directorio admin y un directorio oradata, más tantos directorios como bases de datos tenga instaladas con el formato db_n, donde n es el número secuencial de la base datos. En estos directorios se instalan los binarios para las distintas bases de datos del release (se puede instalar varias veces los archivos binarios de la base de datos).

Dentro del subdirectorio admin, debe haber un subdirectorio por cada una da las bases de datos con el nombre de cada una de ellas. Bajo cada subdirectorio, deberán existir los siguientes subdirectorios:

  • adhoc, donde se guardan scripts Ad Hoc para una base de datos particular.
  • arch, donde se guardan los archives generados como copia de los archivos redo log.
  • adump, donde se generan los archivos de auditoría como se puede ver en Auditando la base de datos.
  • bdump, del background dump dest donde se guarda el log de la base de datos (ver Log de la base de datos).
  • cdump, del core dump dest donde se guardan archivos de la base de datos.
  • create, donde en teoría se deben guardar los archivos usados para crear la base de datos.
  • exp, donde se generan los export de la base de datos.
  • logbook, donde se graban que guardan el estatus e historia de la base de datos.
  • pfile, donde se guardan los archivos de parámetros de la base de datos, aunque hay que tomar en cuenta lo que ya menciono en Pfile vs Spfile.
  • udump, donde se generan los archivos trace del usuario (ver ¿Cómo realizar un trace?).

Nota. Esto es lo oficial que marca Oracle, pero si por ejemplo, no se usa alguna característica especial como la generación de archives copia de los archivos redo log, puede no crearse dicho directorio.

Finalmente, bajo el subdirectorio oradata, se crea también un subdirectorio por cada base de datos con el nombre de la misma. Bajo dicha carpeta se crean los archivos de la base de datos:

  • Control
  • Redo Log
  • DBF de datos

En Linux/Unix

En este tipo de sistemas operativos se crea básicamente la misma estructura que ya vimos en Windows. Sin embargo cambia un poco al momento de manejar los File Systems que pueden tener en vez de unidades de disco.

Estos file systems también son conocidos como puntos de montaje, generalmente uno de ellos se basa en un volume group que a su vez puede englobar a más de un disco físico. Así, aunque se tenga un solo directorio (el punto de montaje, p.e.: /u01), en realidad la información se puede estar distribuyendo entre varios discos ganando paralelismo al momento de leer o escribir.

En este caso, se pueden crear desde uno hasta varios puntos de montaje (/u01, /u02, …), para distribuir la información. Si se crea nada más un punto de montaje, entonces debajo de él tendría al directorio app y al oradata. Por ejemplo:

/u01/app/oracle/admin/...
/u01/app/oracle/product/10.2.0/db_1/...
/u01/oradata/lab/....

hay que recordar que mi base de datos de prueba se llama lab, por eso dentro del directorio oradata puse adl subdirectorio con el nombre de mi base de datos. Dentro de él pondré mis control files, redo log files y data files.

Si tengo oportunidad de tener más de un punto de montaje, podría repartir la información de mejor manera:

/u01/app/oracle/admin/...
/u01/app/oracle/product/10.2.0/db_1/...
/u02/oradata/lab/....
/u03/oradata/lab/....
/u04/oradata/lab/....

De esta manera, estaremos satisfaciendo el estándar de la OFA sin problema.

Desnormalizando la OFA

Como se especificó previamente, la organización de la OFA se puede distribuir sobre varios discos o como los Arreglos de discos (RAID), para tener un mayor grado de paralelismo al momento de leer y escribir la distinta información que usa la instancia de la base de datos.

Así, podríamos distribuir entre distintos discos los directorios correspondientes a la OFA para tener algo más rápido. En el caso de la OFA para Linux|Unix, serían distintos puntos de montaje , donde cada uno de ellos esté basado en distintos discos.

Conclusiones

Aparte de tener un orden en una instalación de base de datos de Oracle, se gana mucho al tener un estándar de instalación también en velocidad de acceso a la información. Por eso es muy importante adoptar en la mejor manera posible la OFA. Espero les haya sido de utilidad.

Si la información de este post te ha sido de utilidad o quieres que agregue algo más, deja por favor un comentario, contestaré a la brevedad.

Anuncios

6 Responses to ¿Qué es la OFA?

  1. elias says:

    exelente informacion, precisa agradesco compartirla que me ha sido util en comprender la estructura de oracle.

  2. orlandoolguin says:

    Hola Elías,

    Qué bueno que te ha sido de utilidad. Espero me sigas visitando.

    Orlando.

  3. Gregorio Amezcua says:

    Lo prometido es deuda Orlando por fin veo un post de tu blog.Me parece muy bueno el tema como lo explicas.
    Saludos

  4. orlandoolguin says:

    Hola Gregorio,

    Muchas gracias por visitarme y qué bueno que te haya gustado, espero sigas vistándome.

    Orlando.

  5. Mario Luria Hernandez says:

    Hola Orlando un gustazo saludarte y también para comentarte que explicas muy bien el concepto de lo que es OFA de oracle.

  6. Orlando Olguín Olvera says:

    Hola Mario.

    Igualmente, mucho gusto de saludarte, tanto tiempo.

    Ojalá que luego los pueda saludar en persona a ti, a José y el resto de compañeros.

    Muchas gracias por tu comentario. y un abrazo.

    Orlando.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: