Minimizar el conflicto de E/S del disco en Oracle
De todos los componentes configurables de una geodatabase, el almacenamiento es tal vez lo que se personaliza más frecuente y extensivamente. Del mismo modo, cada administrador de base de datos (DBA) tiene un método preferido para la organización de estructuras de almacenamiento tanto lógico como físico de la base de datos de Oracle, según la investigación y las técnicas que ya tuvieron éxito.
Dispone de una amplia flexibilidad para diseñar un modelo de almacenamiento para la geodatabase que se adapte a las necesidades específicas de los datos, las aplicaciones y las políticas de administración existentes. ArcSDE tiene pocos requisitos de almacenamiento estrictos. Puede elegir implementar un equipo de nivel de entrada con un único disco de datos y un espacio de tabla para los datos de SIG o un servidor de tecnología avanzada con decenas de conjuntos de discos y cientos de archivos de Oracle, cada uno de los cuales admite correctamente los entornos destinados. Por suerte, puede adaptar ArcSDE y Oracle para aprovechar cualquier recurso que esté disponible para ejecutar la geodatabase.
Para minimizar el conflicto de E/S del disco para las bases de datos de Oracle, puede colocar los archivos a los que se accede con frecuencia en discos separados, cuando sea posible, y agrupar en los mismos discos archivos a los que se accede con frecuencia con archivos a los que no se accede con frecuencia. Para hacer esto:
- Calcule el tamaño de todos los componentes de base de datos y determine las velocidades de acceso relativas.
- Coloque los componentes según la cantidad de espacio en disco disponible y el tamaño y la cantidad de unidades de disco.
Diagramar las unidades de disco y etiquetarlas con los componentes ayuda a rastrear la ubicación de cada componente. Tenga el diagrama a mano cuando cree la base de datos.
A continuación se enumeran algunas recomendaciones acerca de cómo evitar el conflicto de recursos en una geodatabase de ArcSDE almacenada en Oracle. Para obtener una explicación de los componentes de Oracle analizados aquí, como espacios de tabla y segmentos, consulte la documentación de Oracle.
-
Mantenga el diseño de la base de datos lo más simple posible.
Esto no significa que el diseño debe ser inherentemente simple, sólo que la complejidad en el diseño debe derivar de la complejidad en los datos que usted modela, en lugar de decisiones arbitrarias. Comience con un único espacio de tabla de la geodatabase, después justifique y documente cada espacio de tabla adicional que crea. Documentar el objetivo de cada espacio de tabla no sólo será útil para cualquiera que trabaje en el sistema en el futuro (usted incluido), sino que también lo obliga a considerar más cuidadosamente el beneficio de cada espacio de tabla adicional que necesita administrar.
-
Separe los segmentos del sistema de los segmentos de usuario.
Mantener segmentos de usuario, como las clases de entidad, separados de los segmentos del sistema, como los diccionarios de datos de ArcSDE y Oracle, simplifica la administración de cuotas y evita la fragmentación que puede reducir el rendimiento. Además, es lógicamente más fácil controlar la actividad a nivel de espacio de tabla cuando estos segmentos se almacenan independientemente.
-
Separe datos para proyectos diferentes.
Utilizar espacios de tabla dedicados para diferentes proyectos, departamentos u otras entidades lógicas puede facilitar el control y la administración. Las operaciones de restauración que afectan el espacio de tabla de un proyecto no desconectan ningún otro proyecto. Puede asignar cuotas ilimitadas en un conjunto de espacios de tabla a usuarios en un departamento sin el riesgo de que agoten el espacio de otro departamento. Vincular la actividad de E/S y el crecimiento de archivos a equipos o personas es más fácil cuando esas entidades utilizan sus propios espacios de tabla.
-
Separe los segmentos grandes de los segmentos pequeños.
Puede aplicar tamaños de extensión a nivel de espacio de tabla en lugar de sólo a nivel del segmento. Al utilizar un tamaño de extensión uniforme para todos los segmentos en un espacio de tabla, se elimina la fragmentación de espacio libre y se favorece un alto rendimiento. Sin embargo, esto requiere la agrupación de segmentos por tamaño de extensión para equilibrar la cantidad de extensiones por segmento, lo que genera espacio desaprovechado debido a tamaños de extensión excesivos. Los tamaños de extensión de 128 KB para tablas pequeñas, 1 MB para clases de entidad grandes y 128 MB para grandes rásteres son razonables; sin embargo, puede personalizar estos valores según el entorno y la investigación.
-
Separe los datos de sólo lectura de los datos que se pueden escribir.
Si un espacio de tabla contiene únicamente datos de sólo lectura, puede colocar el espacio de tabla explícitamente en modo de sólo lectura. Esto reduce el volumen de los datos a los que necesita realizar copias de seguridad regularmente. Los archivos de datos de sólo lectura también son excelentes candidatos para el almacenamiento en conjuntos RAID (conjunto redundante de discos independientes) 5 debido a que se benefician de una división durante el acceso de lectura y, como son de sólo lectura, no disminuyen el rendimiento de conjunto con la actividad de escritura excesiva.
-
Utilice múltiples discos o conjuntos para almacenar archivos.
Los archivos importantes de Oracle, como archivos de control, registros de rehacer on-line y registros de rehacer archivados, deben ser multiplexados o reflejados por el software Oracle para proporcionar una máxima protección.
Incluso en servidores de base de datos con un conjunto de almacenamiento de único volumen, en general hay un disco interno independiente disponible para el almacenamiento del sistema operativo, el archivo de paginación y los archivos ejecutables de ArcSDE y Oracle. Utilice este disco para almacenar archivos de registro de rehacer y control multiplexados.Precaución:Los archivos de control registran información crítica como una lista de archivos que participan en la base de datos. Los archivos de registros de rehacer on-line y archivados rastrean cambios en la base de datos para fines de recuperación. Es difícil o imposible recuperar completamente una base de datos sin copias actuales de estos archivos.
-
Si utiliza el almacenamiento RAID, utilice los tipos de RAID adecuadamente.
Un RAID es una clase de servicio de administración de almacenamiento. Hay varias estrategias de RAID genéricas. Estas estrategias se denotan con un número o nivel RAID. Son los siguientes: RAID 0, o división, almacena pequeñas piezas del mismo sistema de archivos en los múltiples discos físicos en unidades denominadas divisiones. La ventaja de la división es el rendimiento mejorado. Al expandir el contenido de un sistema de archivos en múltiples dispositivos, la controladora RAID puede leer y escribir múltiples discos al mismo tiempo. La desventaja de RAID 0 es que cuando cualquier disco en el conjunto RAID 0 se desconecta, el conjunto completo no está disponible.
El RAID 1, o espejo, almacena una copia duplicada de todo lo que esté escrito en un disco en un segundo disco. La ventana del espejo es la protección de datos. Una base de datos puede perder un disco sin la pérdida de datos ni degradación alguna del servicio durante el suceso del fallo. Por este motivo, RAID 1 se utiliza con muchas geodatabases, especialmente aquellas con altos requisitos de disponibilidad. La desventaja del espejo es el coste. Debido a que los datos se almacenan dos veces, se necesita el doble de discos para almacenar la misma información, en comparación con los discos divididos o independientes. Una pequeña penalización de escritura también está involucrada debido a la necesidad de escribir datos duplicados. RAID 10, también denominado RAID 1+0, combina las ventajas de los niveles 1 y 0 de RAID. Los conjuntos RAID 10 dividen los datos en conjuntos de discos reflejados. Esto brinda la ventaja de rendimiento de RAID 0 y la ventaja de protección de datos de RAID 1. RAID 10 y las implementaciones específicas de proveedor basadas en la estrategia de RAID 10 ofrecen el mejor rendimiento de E/S para geodatabases ocupadas.
RAID 10 es costoso debido a que requiere hardware adicional para almacenar los datos reflejados. Puede considerar utilizar RAID 10 selectivamente para proteger y proporcionar un alto rendimiento para los archivos más ocupados, eligiendo otro RAID u opciones de configuración independientes para datos de sólo lectura, archivados o modificados con menos frecuencia. Si tiene posibilidad de utilizar RAID 10 para todo el almacenamiento de base de datos, hágalo. De lo contrario, considere la posibilidad de combinar varios RAID y opciones de configuración de disco independiente para lograr la mejor confiabilidad y rendimiento para el hardware a su disposición. Cada vez que sea posible, almacene archivos de escritura intensiva en dispositivos RAID 1 o RAID 10. Tales archivos incluyen archivos de datos y de registro de rehacer para espacios de tabla de deshacer. Si es necesario, utilice discos independientes con la multiplexación de Oracle y una estrategia de copia de seguridad integral.
El RAID 5, también denominado división con paridad rotativa, requiere el equivalente de sólo un disco adicional en el conjunto completo para el almacenamiento de información redundante. Para lograr esto, RAID 5 divide los datos en múltiples discos y después almacena una parte adicional de información de paridad para la división completa. Si un disco en el conjunto se desconecta, el procesador RAID puede reconstruir los datos faltantes de los discos restantes y la información de paridad. Las ventajas de RAID 5 son el rendimiento de lectura mejorado mediante el uso de la división y la redundancia de bajo coste al utilizar la información de paridad en lugar del espejo total. Debido a que las geodatabases tienden a ser de lectura intensiva, RAID 5 es adecuado para aplicaciones de geodatabases, especialmente cuando se requiere una disponibilidad moderadamente alta.
Sin embargo, debido a que RAID 5 no almacena información totalmente redundante, es más susceptible a la pérdida de datos que RAID 10. A pesar de que tales problemas son poco comunes, si dos discos en un conjunto RAID 5 se desconectan simultáneamente, el conjunto no tiene suficiente información restante para reconstruir los datos faltantes, de modo que el volumen completo debe desconectarse. El rendimiento también puede verse afectado en dos casos. Primero, cuando los datos se escriben en el conjunto, la información de paridad también se debe procesar y almacenar. Segundo, cuando una unidad se desconecta, el rendimiento de lectura y escritura disminuye considerablemente mientras el procesador RAID reconstruye datos para el disco faltante al vuelo. Para una geodatabase muy activa, el rendimiento disponible durante estos eventos puede ser insuficiente para brindar un nivel de servicio aceptable.
-
Utilice la administración de almacenamiento automatizada de Oracle.
Oracle 10g introdujo la característica de administración de almacenamiento automatizada (ASM). ASM es esencialmente un sistema RAID que se optimiza y está dedicado para servir bases de datos de Oracle. ASM utiliza una instancia de Oracle para mediar solicitudes de E/S de datos a un grupo de particiones sin procesar que administra como un grupo de discos. Los grupos de discos pueden brindar división, espejo y un espejo especial denominado alta redundancia que almacena tres copias de datos en lugar de las dos que almacena normalmente.
-
Utilice un valor PCTFREE pequeño para datos de sólo lectura.
Oracle permite reservar una cierta cantidad de espacio libre en cada bloque de datos al insertar nuevos datos en una tabla. Una vez que se alcanza el límite de espacio libre para un bloque, Oracle no inserta datos adicionales en ese bloque. Este espacio libre puede ser utilizado sólo por las actualizaciones a filas existentes almacenadas en ese bloque. Al reservar espacio sólo para operaciones de actualización, puede evitar que las filas superen el espacio disponible en el bloque original y que tengan que migrar a un nuevo bloque. La migración es una operación costosa para la fila, tanto en el momento de actualización como cuando se obtiene acceso en operaciones subsiguientes como las consultas.
Muchas geodatabases se actualizan ocasionalmente, ya sea porque las tablas son estáticas, como ocurre en general con los rásteres, o porque se editan en un flujo de trabajo de múltiples versiones, caso en el cual los pares de operaciones de eliminación e inserción sustituyen las actualizaciones reales.
Por lo tanto, para maximizar la cantidad de espacio en cada bloque utilizado para almacenar datos de geodatabase, ArcSDE se configura previamente para no reservar ningún espacio libre configurando la cláusula PCTFREE 0 en cadenas de texto de almacenamiento DBTUNE. Si desea reservar espacio libre para actualizaciones SQL con aplicaciones personalizadas, modifique los valores PCTFREE en la configuración DBTUNE predeterminada. Para obtener más información sobre la configuración DBTUNE, consulte ¿Qué es la tabla DBTUNE?, ¿Qué son los parámetros y las palabras claves de configuración DBTUNE? y Parámetros de configuración DBTUNE en Oracle.