miércoles, 28 de marzo de 2012

Datafiles de Oracle y archivos Quick I/O de Veritas

Si quieres tener máximo rendimiento en acceso a los datafiles debes usar dispositivos crudos para los datafiles, pero muchos sistemas operativos modernos manejan el acceso a archivos bastante bien, puedes usar ASM para la administración de almacenamiento de bases de datos Oracle, y administrar dispositivos crudos requiere un administrador de sistemas experimentado y es tardado, por lo que casi siempre la velocidad extra ganada con dispositivos crudos no vale la pena para la habilidad y esfuerzo extra requeridos para mantener dispositivos crudos.

Pero si tienes una base de datos Oracle en un servidor Solaris con sistema de archivos Veritas VxFS con Quick I/O incluido (esto es, con licencia), entonces puedes usar acceso Quick I/O con archivos regulares; de esta manera puedes tener y administrar archivos regulares pero al mismo tiempo puedes accesarlos como dispositivos crudos. Un usuario no privilegiado puede crear ligas Quick I/O y es muy fácil hacerlo; primero tienes que crear tu datafile a nivel de sistema operativo con qiomkfile:

oracle@myserver$ qiomkfile -h 32k -s 16000M /myfs/mydatabase/mydatafile.dbf

oracle@myserver$ ls -la /myfs/mydatabase
total 32768066
drwxr-xr-x 3 oracle dba 96 Sep 24 11:32 .
drwxr-xr-x 61 oracle dba 1024 Sep 23 16:57 ..
-rw-r--r-- 1 oracle dba 16777248768 Sep 24 11:32 .mydatafile.dbf
lrwxrwxrwx 1 oracle dba 26 Sep 24 11:32 mydatafile.dbf -> .mydatafile.dbf::cdev:vxfs:
drwxr-xr-x 2 oracle dba 96 Sep 23 16:50 lost+found

El secreto es que .mydatafile.dbf es un archivo regular (pero contínuo en toda su extensión), y mydatafile.dbf es una liga a .mydatafile.dbf::cdev:vxfs: pero el sistema operativo reconoce el sufijo ::cdev:vxfs: como Quick I/O y accesa .mydatafile.dbf como un dispositivo crudo; esta es la razón por la que el archivo .mydatafile.dbf::cdev:vxfs: no debe existir. Los parámetros de qiomkfile son simples; -h es el espacio extra agregado al archivo para usarlo como datafile de Oracle (en este caso 16,000 megabytes mas 32 kilobytes) ya que Oracle agrega un bloque de base de datos (parámetro DB_BLOCK_SIZE) para cada datafile creado, y -s es el tamaño requerido del datafile de Oracle que debe coincidir con la cláusula DATAFILE ... SIZE.

Esta fue la parte difícil; para crear datafiles que usen las características de Quick I/O tienes que usar la cláusula REUSE:

SQL> CREATE TABLESPACE MYTBL DATAFILE '/myfs/mydatabase/mydatafile.dbf' SIZE 16000M REUSE;

Tablespace created.

SQL> ALTER TABLESPACE MYTBL ADD DATAFILE '/myfs/mydatabase/mydatafile2.dbf' SIZE 16000M REUSE;

Tablespace altered.

Y hablando de eliminar tablespaces con datafiles con Quick I/O, no uses la cláusula INCLUDING CONTENTS AND DATAFILES u obtendrás un error, sólo elimina el tablespace y borra los archivos con rm a nivel de sistema operativo.

Más información:

Veritas Storage Foundation for Oracle Administrator’s Guide (chapter 4)
Veritas Storage Foundation 5.0 Software

No hay comentarios.:

Publicar un comentario