Base de datos Oracle en memoria en la implantación de SAP


Un examen más detallado muestra que existen diferencias considerables en los conceptos in-memory de SAP y Oracle. Esto ya empieza con la denominación oficial:
Mientras que Hana se denomina "Base de datos en memoria", Oracle habla de "Base de datos en memoria". Qué posibilidades ofrece la recién certificada por SAP "Database In-memory" de Oracle para su uso con SAP?
La característica común básica, porque el concepto teórico fundamental para almacenar una base de datos en la memoria principal física (RAM), es el almacenamiento de datos orientado a columnas.
Esto explica por qué la in-memoria no se ha hecho tan popular hasta hace poco. Hasta hace poco, casi todas las bases de datos relacionales evitaban la in-memory debido a las considerables desventajas de la orientación a columnas en el entorno OLTP.
Sólo la necesidad de evaluar grandes cantidades de datos con rapidez, la bajada del precio de la RAM y la disponibilidad de procesadores multinúcleo hicieron que este concepto cobrara interés.
Hana carga toda la base de datos en la memoria principal, razón por la cual la solución también se denomina base de datos en memoria. Este concepto requiere un hardware especial, una enorme cantidad de RAM y, en caso de caída del servidor, hay que planificar mucho tiempo para la recuperación de la base de datos.
Para utilizarla con Hana, una base de datos debe migrarse por completo. La vuelta atrás sólo es posible con un gran esfuerzo. Por cierto, el tamaño de la memoria principal necesaria no viene determinado únicamente por los requisitos de espacio de la base de datos. Más bien, las funcionalidades internas de Hana (procesos de fusión, área temporal) requieren un 50 por ciento adicional de RAM.
La RAM no es nueva para la base de datos Oracle
La base de datos Oracle nunca se basó únicamente en el disco. Para optimizar el rendimiento, en versiones anteriores también utilizaba estructuras de memoria como la memoria intermedia, la caché de filas y la caché de resultados.
Con la base de datos Oracle en la versión 12.1.0.2, también se introdujo la opción in-memory. Oracle Database In-memory es, por tanto, al igual que Hana, especialmente adecuada para analizar o agregar grandes cantidades de datos con mayor rapidez.
Oracle no llama a su base de datos In-memory Database, sino que pone deliberadamente el término In-memory al final del nombre. Con ello quiere dejar claro que Oracle es el único fabricante de bases de datos que mantiene sin cambios la tecnología existente y la amplía con un componente in-memory.
Se mantiene por completo el principio anterior de almacenamiento en búfer orientado a líneas en la memoria principal y su almacenamiento en disco o memoria flash. El almacén de columnas en memoria se configura en un área RAM adicional.
En ella pueden almacenarse tablas completas, columnas individuales o particiones individuales en formato de columnas. Oracle combina así las ventajas de las bases de datos orientadas a filas y a columnas en un solo producto y crea -a diferencia de SAP- una "base de datos híbrida".
Esto es adecuado para aplicaciones OLTP como de costumbre y sin modificaciones, y sigue ofreciendo importantes mejoras de rendimiento para consultas analíticas a través de Column Store.
Sencillo: instalación y funcionamiento
Para utilizar in-memory en una base de datos existente, sólo son necesarios dos pasos: (1) El tamaño del almacén de columnas in-memory debe definirse mediante un parámetro en el fichero de inicialización de la base de datos. (2) A continuación, se seleccionan las tablas que deben estar disponibles en formato columna.
Esto deja claro que para utilizar Oracle Database In-memory no es necesario modificar las aplicaciones o infraestructuras existentes, por ejemplo para las operaciones de copia de seguridad y recuperación.
Con este enfoque se mantienen todas las opciones de una base de datos Oracle, como la compresión, el cifrado, Real Application Clusters o Data Guard.
Aquí hay que aclarar el malentendido generalizado de que la tecnología in-memory generalmente conduce a mejoras de rendimiento "sin más": Este no es el caso ni de Hana ni de Oracle Database In-memory.
En la base de datos Oracle, Oracle In-memory Advisor ayuda en la configuración. Proporciona información sobre el tamaño del almacén de columnas en memoria necesario, así como información sobre las tablas que deben crearse como objetos en memoria.
Ahora, Oracle Database Optimizer puede utilizar adicionalmente el almacén de columnas para encontrar la ruta de acceso óptima para la consulta analítica correspondiente.
De este modo, la base de datos puede ejecutar una consulta a través de la caché de memoria intermedia tradicional (índice único, escaneo de rango de índices) o a través del almacén de columnas en memoria. Las transacciones OLTP se siguen ejecutando en la caché de memoria intermedia.
La base de datos puede ajustarse individualmente a su distribución de carga. La proporción de carga de trabajo analítica y OLTP se puede asignar mediante la proporción de caché de búfer y almacenamiento en memoria.
Oracle Database In-memory funciona en todas las plataformas compatibles con Oracle: UNIX, Linux, Windows. Para los usuarios de SAP, la base de datos Oracle es, por tanto, una alternativa atractiva y sin riesgos a Hana.
Oracle recomienda su Exadata Database Machine como plataforma de hardware óptima. En ella pueden aprovecharse plenamente todas las ventajas de la base de datos Oracle, incluida la opción en memoria. Ofrece diferentes niveles de almacenamiento para la base de datos: In-memory, flash y disco.
En el próximo número informaremos en detalle sobre la máquina de base de datos Oracle Exadata para SAP. Encontrará más información en SAP Note 2178980 y en http://bit.ly/oracleinfo