Hay que ser muy friki para escribir un blog, pero más friki hay que ser para seguirlo 😜

Administración del sistema del nuevo SAP HANA Cloud a vista de pájaro

Administración del sistema

Tareas y herramientas

El rol del administrador de base de datos (DBA) ha cambiado sinificativamente comparando SAP HANA Cloud y SAP HANA, platform edition (on-premise) o, en términos más generales, cuando comparamos la administración de la base de datos con una base de datos como servicio (DBaaS) versus el software que de otro modo necesitarías instalar y mantener. Con SAP HANA Cloud, no necesitarás la herramienta de gestión del ciclo de vida de la base de datos de SAP HANA (HDBLCM) para instalar y actualizar el software del servidor de la base de datos o componentes relacionados, ya que de esta parte del trabajo se ocupa SAP. Actualización de los servicios disponibles cuatro veces al año en ciclos de versiones trimestrales (QRCs).

Con SAP HANA Cloud, no necesitarás cargar más con los backups de base de datos y la restauración después, otra actividad tradicional y que consume tiempo de ser DBA, ya que estas actividades también son partes del servicio. Los backups se hacen automático, y la restauración puede iniciarse a través de una petición de servicio.

Las herramientas para administrar el servicio de SAP HANA Cloud son similares a las herramientas usadas en SAP HANA, platform edition. Usaremos el cockpit de SAP HANA y el explorador de base de datos SAP HANA para la mayoría de las actividades. Para la automatización, puedes usar la herramienta de la línea de comandos, la terminal interactiva de la base de datos SAP HANA (HDBSQL). aunque necesitarás instalar el cliente de SAP HANA. El cockpit de SAP HANA y el explorador de la base de datos SAP HANA están incluidos como servicio con SAP HANA Cloud, preconfigurado y listo para usar con las ventajas tradicionales que siempre has usado en la versión anterior. De nuevo, no hay necesitad de instalar o configurar nada.

Usaremos una nueva herramienta como administradores de la base de datos SAP HANA Cloud para crear, configurar, e iniciar/parar servicios en el cockpit BTP. Si prefieres la línea de comandos, usa el Cloud Foundry CLI. Con esta herramienta, puedes configurar la asignación de memoria o habilitar características adicionales como AFL para algoritmos predictivos y de machine learning.

Para tus interacciones diarias con el servicio de SAP HANA Cloud, puedes usar el cockpit de SAP HANA junto con el explorador de la base de datos de SAP HANA para acceder al catálogo de objectos y la consola SQL. El cockpit de SAP HANA proporciona tres filtros, o vistas, que más o menos corresponde con la mayoria de las actividades importantes de un DBA: Administración, Monitorización, Seguridad y Gestión de usuarios.

No está soportado el uso de SAP HANA Studio para las actividades de administración. Esta herramienta, y el plugin de herramientas de Eclipse para SAP HANA, fueron deprecados en 2018.

Administración

Abramos la app Database Overview y exploremos la vista de administración. En la vista de administración, aquellos que están familiarizados con el cockpit de SAP HANA para administrar SAP HANA, platform edition, se darán cuenta de que el número de cards está reducido significativamente, lo que no debería sorprender ya que, como un servicio gestionado, SAP HANA Cloud requiere de menos administración.

Enfoquémonos en los backups,por ejemplo. La card de Database Backups está incluida en la app Database Overview pero sin ningún enlace para crear un backup. Seleccionar esta card abre la app Backup Catalog, con una lista de todos los backups que se han hecho, incluyendo un bonito gráfico, pero en esta app tampoco tendrás acceso al wizard Create Backup o a la app Backup Configuration. La app Backup Catalog, solo proporciona servicios para identificar backups disponibles en caso de que necesites contactar con SAP para una petición de restauración de base de datos. Todas las otras interfaces de backups y restauraciones se han eliminado, lo que incluye el borrado de las correspondientes sentencias SQL. Ejecutar estas sentencias devuelve un mensaje “feature not supported”. Deshabilitar la funcionalidad de backup no requería mucho trabajo de desarrollo. De hecho, no requirió ningún trabajo, ya que esta limitación se implementa simplemente usando la funcionalidad personalizable de los tenant de base de datos.

Además para propósitos totalmente informativos está la card Database Information y corresponde a la app Database Information. Esta app proporciona información general sobre la versión e información específica sobre los plugins instalados. Verás PAL, y el SAP_AFL_SDK_API, ltiple Hosts (para un sistema distribuido de escalado horizontal, o escalable) y el campo System Replication Configured no se han eliminado.

Volvamos a la app Database view con la vista de Administrador. La card Database Administration se ha reducido a dos entradas que apuntan a las apps Database Configuration y Workload Classes apps. Quizás se elimine el enlace a Database Explorer en un futuro ya que también puedes lanzar la herramienta haciendo click en SQL Console en la cabecera.

El cockpit de SAP HANA se conecta a la base de datos SAP HANA Cloud usando una conexión SQL (ODBC). Así que, toda la información que se muestran en las cards y las app también pueden obtenerse buscando en la base de datos directamente, por ejemplo, la vista de monitoring del sistema M_DATABASE para la card de Database Information. Todos los cambios se hacen usando las sentencias ALTER SYSTEM ALTER CONFIGURATION. Claramente, y en particular para gráficos de monitoring, usar el cockpit SAP HANA es mucho más fácil, más user friendly y menos propenso a errores. Aun puedes usar la interfaz SQL para sentencias puntuales, scripts y reporting o si no hay una gráfica disponible (aun) en una card o una app.

Desde la card Database Administration, puedes acceder a los cambios de la app Database Configuration, podría decirse que es una de las apps más importantes de gestión de SAP HANA Cloud.

Database Configuration

Con la app de Database Configuration, puedes ver o editar parámetros del sistema. El número total de parámetros se han reducido alrededor de 1000 para SAP HANA, platform edition, a menos de 100 para SAP HANA Cloud. Con SAP HANA. platform edition, habrías tenido que considerar si los cambios deberían realizarse en el sistema en su conjunto; en tanants específicos de la base de datos; o, en caso de sistemas de host múltiple, en el host específico ya que existían tres capas de configuración. Este concepto de capas ya no es relevante para SAP HANA Cloud ya que los parámetros sólo se ocupan de tu tenant de base de datos.

Los parámetros del sistemas se guardan en archivos de configuración con la extensión *.ini (a veces llamados simplemente archivos INI). Como con los parámetros, el número de archivos de configuración también se han reducido. En algunos casos, sólo un archivo es relevante cuando se activa una característica, por ejemplo, el archivo scriptserver.ini, que configura el AFL. El archivo más relevante es para el proceso del servicio indexserver que contiene el tenant de la base de datos SAP HANA H00, indexserver.ini.

Cada parámetro del archivo de configuración se divide en dos secciones que agrupa parámetros relacionados. Cada parámetro tiene por defecto un valor, normalmente es el ajuste más apropiado, aunque existen excepciones. Para las excepciones, una interfaz de usuario estará disponible, como en el caso de la gestión de los parámetros de password policy. Los parámetros de password policy se almacenan como parámetros del sistema pero normalmente no se editan directamente con la app Database Configuration. En su lugar, podrías usar la app Authentication. Otro ejemplo donde podrías usar esta app en lugar de configurar el parámetro directamente es en el de dynamic_result_cache.

Hay que considerar que la app Database Configuration es una herramienta poderosa y hay que usarla con cuidado. Aunque existen algunos inputs de validación y alertas de monitoring para valores que no está soportados, el sistema no cogerá cada input. En general, cuando están disponibles, mejor que utilices las apps específicas para configurar los parámetros de sistema básicos.

Cualquier cambio de parámetros del sistema que hagas usando la app Database Configuration (o usando otras apps)  se convierten en sentencias ALTER SYSTEM, especificando el archivo, la capa, el parámetro y el valor así como si quieres hacer el cambio persistente o no, esto es, guardar el cambio en el archivo INI actual o no. De otro modo, tus cambios no sobrevivirán al reinicio del sistema. La siguiente sentencia SQL ajusta password policy para habilitar un cambio de password en el primer logon.

ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'database') SET ('password policy', 'force_fisrt_password_change') = 'true' WITH RECONFIGURE;

Cuando haces cambios en un parámetro, puedes añadir comentarios, lo que será de ayuda cuando quieras ver el histórico de cambios. La interfaz también incluye la opción de hacer captura de la configuración actual.

Workload Management

Con la app de Workload Classes, puedes crear o importar clases workload. Puedes crear o importar clases workloads. Ejemplos cásicos de workloads son los jobs de lotes de carga de datos (ETL), procesamiento de datos transaccionales concurrentes (OLTP), o análisis complejos de selecciones de grandes cantidades de datos (OLAP). En la práctica, una clase workload se refiere a cualquier carga que requiera priorización en la gestión de actividades concurrentes.

Para cada clase, puedes definir una prioridad de ejecución (de 0 a 9), sentencias de memoria, y límite de thread (no se cómo traducirlo) para cada sentencia individual o agregadas. Este workload se mapea a un usuario particular, aplicación, o grupo de usuario (por nombrar algunas opciones). Como resultado, cuando un usuario o app se conecta, se ejecuta la clase de workload asignada. Las clases workload se implementan típicamente como parte de un proceso iterativo de cargas, que analiza la ejecución del sistema dentro de un contexto de negocio (algunas actividades más importantes que otras), mapea la carga a los recursos del sistema, analiza los resultados, ajusta los mappings, y repite si es necesario. La app Monitor, accesible desde el header de la app Workload, está disponible para ayudarte con el análisis.

Alerting and Diagnostic

Volvamos a la app Database Overview y la vista de Administration. la card Alerting and Diagnostics proporciona acceso a dos apps – a la app Alert Definitions y la app Full System Information Dumps – además de un link directo a la carpeta Database Diagnostic Files del explorador de base de datos SAP HANA.

Con la app Full System Information Dumps, puedes recoger diagnósticos de los archivos de trace y logs actuales o de la ejecución del entorno. Con la app, puedes agrupar y comprimir archivos de trace y logs a archivos ZIP, quizás para enviárselo al soporte de SAP, que es el mayor caso de uso para esta app. Agrupar la información del diagnóstico de la ejecución del entorno  realiza un propósito similar, esta vez para las actividades actuales.

Los archivos de trace y logs no es una gran lectura (como se muestra en la imagen anterior), que es una sentencia ejecutada parseada del archivo de traza indexserver. Existe un directorio para cada servicio. Bajo other, entontrarás el backup.log por ejemplo.

Alerts

SAP HANA Cloud incluye un sistema de monitoring interno, que tiene un ojo puesto en la salud y en el uso de recursos de todos los servicios y también alertas de problemas cuando se exceden ciertos umbrales. Estos umbrales se configuran a través de la app Alert Definition. Esta app muestra todas las alertas disponibles, un poco menos que las alertas disponibles en el tenant de base de datos de SAP HANA, platform edition, pero no por mucho.

Desde esta lista, puedes seleccionar una alerta para editarla, como se muestra en la imagen anterior. Puedes deshabilitar la programación de alertas, cambiar el intervalo, o cambiar la prioridad umbrales. A menudo, la solución propuesta a un problema será contactar a SAP. Después de que hayas hecho los cambios que quieras, haz click en el botón Check now para verificar que el problema se ha resuelto.

Desde la app Alert Definition, puedes navegar a la app Alerts, que lista todas las alertas incluyendo información sobre ocurrencias específicas.

Las alertas están organizadas por categoría y por área de rendimiento clave (KPA), lo que incluye CPU, memoria, seguridad, configuración, y algunas otras. Las alertas se muestran prominentemente en varios espacios del cockpit de SAP HANA, por ejemplo, en la card Alerts de la app Database Overview, pero también en la app Manage Services.

Manage SQL Performance

Cuando vuelves a la vista Administration de la app Database Overview, fíjate que aun hay algunas cards más y apps que discutir. Manage SQL Performance muestra información sobre hints, planes y el resultado del cache. Seleccionando las filas se abre Statement Hints, Saved Plans y Data Cache, respectivamente.

Las sentencias hints te permite influenciar en cómo se procesan las búsquedas, por ejemplo, especificando que no se utilice la nueva columna SAP HANA Execution Engine (HEX). Para este escenario, la cláusula with hint está disponible:

select COLUMN from TABLE with hint ( NO_USE_HEX_PLAN )

Además, puedes adjuntar hints permanentemente usando la instrucción ALTER SYSTEM ADD STATEMENT HINT, pero para este método, debes saber qué hints están disponibles con la sintaxis correcta para aplicar y cómo habilitar/dehabilitar hints.

Como se muestra en la siguiente imagen, más de 300 hits diferentes definidos en el sistema están disponibles. Como alternativa de enlazar un hint a una sentencia, también puedes fijar un hint a un plan de ejecución, según lo que se almacena en el SQL plan cache. Sin embargo, esta funcionalidad no está disponible en SAP HANA Cloud inicialmente.

La app Data Cache lista todos los procedimientos en caché así como todas las entradas en caché para los resultados de caché estáticos y dinámicos. Los cachés pueden mejorar la ejecución para búsquedas complejas, pero no puedes ver aun los resultados de los cachés listados  a nivel de base de datos ya que están desactivados por defecto. Es preferible usar las sentencias hint. Los resultados de caché estáticos guardan vistas específicas para un tiempo de retención definido por el usuario (lo que lo hace estático). El caché dinámico guarda el control de cambios para estar al día.

Recommendations

La card de Recommendations y la app proporcionan información el diseño de aplicación actual, sentencias SQL, y en general, recomendaciones ad hoc.

El cockpit de SAP HANA para SAP HANA, platform edition, incluye un asesor de estadísticas de datos, un asesor NSE, plan de estabilidad SQL y característica de control de recursos para generar recomendaciones, que no están disponibles actualmente.

Smart Data Access y Smart Data Integration

Las dos cards que quedan en la vista Administration conciernen a la tecnología de federación de datos Smart Data Access (SDA) de SAP HANA y la tecnología de integración Smart Data Integration (SDI).

Haciendo click en la card Smart Data Access se abren dos vistas de monitoring: Remote Statements Monitor y Remote Connection Monitor. Ninguna de las dos apps son sofisticadas, sólo muestran el resultado de una búsqueda SELECT en la correspondiente vista de monitorización del sistema. Para la configuración actual SDA, necesitarás cambiar al explorador de base de datos SAP HANA de nuevo.

Para las apps SDI, se requiere incluso menos esfuerzo ya que la card Smart Data Integration sólo incluye enlaces a los correspondientes ítems del catálogo en el explorador de base de datos SAP HANA: agents, remote sources, tasks y subscriptions.

Monitoring

La vista Monitoring del cockpit de SAP HANA, lista la mayoría de las cards y apps que muestran el estado actual de la base de datos (aunque la distinción no siempre es estricta, como curre con la app Smart Data Access). En esta vista, verás las tres cards – CPU, Memory y Disk Usage, con gáficos – y enlaces a la app Performance Monitor, Workload Analysis y algunas apps de monitorización adicional para recursos de memoria. La vista Monitoring también muestra las apps relacionadas Sessions y Threads y un enlace a transacciones bloqueadas. También verás la card Alerts y Admission Control, una funcionalidad de gestión de cargas. Las sentencias SQL se listan (es una base de datos después de todo), y verás la card Services.

Services

La card Services muestra el estado de cada servicio de base de datos corriendo en el host actual. Desde esta card, puedes acceder a la app Manage Services, que se muestra a continuación:

 

En la app Manage Services, el icono del engranaje en la cabecera de la tabla proporciona acceso a las estadísticas de los servicios, presentado en casi 30 columnas. Para obtener esta información, la app busca en las vistas de monitorización M_SERVICES y M_SERVICE_STATISTICS.

Desde esta app, también puedes ejecutar algunas tareas de administración y parar un servicio. Rara vez ejecutarás esta actividad porque daemon de SAP HANA, o el servicio rastreador, está generalmente configurado para iniciar cualquier servicio parado. Además, para nuestro tenant de base de datos SAP HANA Cloud H00, no podemos cambiar este comportamiento. El botón Stop Service, en otras palabras, corresponde a la acción Restart Service. En la siguiente imagen puedes ver el resultado a la acción Stop Service . Se ha lancazo una alerta, y puedes acceder al archivo de trace del servicio en la columna Status. Para limpiar las alertas, navega a la app Alerts y haz click en el botón Check Now.

Parar el servicio indexservice es una mala idea porque este servicio corresponde a la base de datos. Como con los otros servicios, el servicio indexserver se iniciará de nuevo, pero para bases de datos grandes, este reinicio puede requerir algo de tiempo, durante el cual tus conexiones se perderán.

La acción Kill Service suena más drástica de lo que es (administradores UNIX estarán familiarizados con este término), como se muestra en la siguiente imagen, la acción Kill Service devuelve un popup “Are you sure?”, informándote del reinicio por daemod. Tienes la opción de generar un archivo de dump, que después puedes recoger con la app Full System Information Dumps y enviarlo a SAP Support.

 

Perfomance Monitor

Las cards Memory Usage, Disk Usage y CPU Usage proporcionan información instantánea del uso de los recursos actuales, y las tres están enlazadas a las apps Performance Monitor y Workload Analysis. Desde la card Memory Usage, también puedes acceder a tres apps adicionales de monitorización/análisis, Memory Analysis, Buffer Cache Monitor y Memory Paging Monitor.

Como la app Database Overview, la app Performance Monitor tiene varias vistas (Default, CPU, Disk, Memory) en la que puedes añadir gráifocs usando uno o más de 60 KPIs disponibles de un host o servicio, en la imagen siguiente se muestra. Puedes guardar estas opciones como una vista con nombre.

Cuando se utiliza cualquiera de los ajustes de rango de tiempo, puedes, por ejemplo, aumentar a los últimos 5 minutos o disminuir a los últimos 7 días o semanas o meses previos, con un selector personalizado para seleccionar cualquier rango. Puedes importar o exportar estas estadísticas. Además, puedes marcar un rango de tiempo para abrir la selección en la app Perfomance Comparison donde puedes, con gráficos, comparar el rango a rangos similares de diferentes días o usando diferentes KPIs. Este rango puede marcarse para futuras referencias.

Workload Analysis

Desde la app Performance Monitor, puedes navegar a la app relacionada Workload Analysis, esta app es una fase del proceso iterativo de la gestión de cargas. Con esta app, puedes analizar tus cargas, condfigurar y ajustar classes workload, etc.

La interfaz de usuario de esta app es similar a la de Performance Monitor, con sus rangos de tiempo, KPIs y botones de exportar/importar. Lo diferente son las vistas abajo de la app, que muestran diferentes pestañas que contienen información más detallada: pestañas Top SQL Statemets, Background Jobs, Timeline y Threads. La vista Top SQL Statements se muestra en la imagen anterior. Puedes guardar el plan de ejecución de sentencia SQL (extensión PLV) para más análisis.

Memory Analysis

Como la app Workload Analysis, la app Memory Analysis, que se muestra en la imagen siguiente también muestra un gráfico de tiempo arriba. Sin embargo, en el área de abajo, podrás ver pestañas para acceder a información relevante para la memoria.

La pestaña Top Consumers lista diferentes componentes con sus footprints mapeados a un gráfico para mostrar cómo han evolucionado el uso de sus recursos a lo largo del tiempo (Top Consumers History). Los diferentes componentes se agrupan en categorias y se muestran en un gráfico circular bajo la pestaña Components que se enfoca en el tamaño del código, tamaño de la pila, cachés, tablas de guardado de filas, estadísticas, y áreas de trabajo, por nombrar algunos de los posibles elementos. Bajo la pestaña Allocators, encontrarás un ejecutor de job, el SQL parser, el guardado de columnas, el compilar SQLScript, funciones de auditoría, y muchos otros componentes con sus consumos de memoria. Bajo la pestaña Tables, encontrarás el top 10 de tablas por tamaño y por crecimiento mientras que las pestañas Out of Memory Events y Out of Buffer Events listan sentencias que han provocado eventos que se salen de la memoria o buffer.

Buffer Cache Monitor y Memory Paging Monitor

Para los eventos que se salen del buffer, puedes cambiar a la app Buffer Cache Monitor, que muestra el estado del caché del buffer parte de la funcionalidad NSE. Como recordatorio, NSE es parte de la función de nivelado de datos de SAP HANA Cloud en la que los datos con un uso alto se mantienen en memoria, los datos de uso medio se mantienen en disco (NSE), y otros datos se guardan en el data lake de SAP HANA Cloud.

Desde la app Buffer Cache Monitor, puedes configurar el tamaño máximo de caché del buffer, como se muestra en la siguiente imagen. Configurar este valor te hará cambiar los roles de monitorización a administración de nuevo y lanzará una sentencia ALTER SYSTEM ALTER CONFIGURATION para cambiar los parámetros del sistema correspondientes.

Cuando seleccionas un caché del gráfico, se abre la aplicación Memory Paging Monitor, donde puedes ver, para cada tabla, la parte cargada en memoria, al caché del buffer, a la memoria delta, o descargada. Para hacer cambios, puedes abrir la configuración de unidad de carga par la tabla. Está disponible un enlace a la consola SQL para ajustar la configuración ya que al cambiar la configuración usa sentencias ALTER TABLE de todos modos, que puedes introducir directamente en la consola SQL.

Admission Control Monitor

Relacionada con las cargas se encuentra la app Admission Control Monitor. Esta función de administración de cargas define cómo el sistema debería reaccionar a la alta demanda, con memoria y umbrales de CPU definidos para seleccionar y rechazar nuevas peticiones. Esta funcionalidad no es configurable actualmente en SAP HANA Cloud, y no está incluida en la correspondiente app Admission Control Setting.

Sessions, Threads, y Transactions

Las apps Sessions, Threads y Blocked Transactions están bastante relacionadas, y cada una presenta una vista de tabla simple con columnas ajustables que muestra información de la correspondiente vista de monitorización (M_SERVICE_THREADS para la app de Threads, por ejemplo).

Ya que las apps están relacionadas, puedes navigar fácilmente desde la app Session a la app Threads y a la app Blocked Transactions usando el enlace en la barra como se muestra en la imagen siguiente. Puedes cambiar los roles de nuevo y, como administrador, cancelar una sesión o una operación (transacción). Como se muestra en la siguiente imagen, desde la app Threads, puedes ver la pila de llamada de la sentencia, pero para dumps, esta información está destinada principalmente para desarrolladores SAP HANA y SAP Support.

SQL Statements

La app SQL Statements incluye información específica a la ejecución SQL y cuenta con una barra de búsqueda y pestañas adicionales, como se muestra en la imagen siguiente:

Bajo la pestaña Active Statements, se muestra la actividad SQL actual, que normalmente son sentencias de larga ejecución. Bajo la pesteña Expensive Statements, encontrarás sentencias SQL con un umbral superior al configurado. Bajo la pestaña SQL Plan Cache, encontrarás sentencias con un plan de ejecución en caché.

Como se ve en la imagen anterior, puedes pedir la sentencia SQL completa. Luego, desde el popup, guardar y descargar el plan de ejecución. El plan se guarda en un archivo PLV y se asemeja a un archivo XML. Cuando guardas un plan, se litará en la app Saved Plans (y la vista de monitorización correspondiente).

Table Usage

Finalmente, la vista Monitoring del cockpit de SAP HANA también proporciona acceso a la app Table Usage. Esta app lista tablas y uso de memoria con algunas estadísticas adicionales como el número de particiones, lecturas, y escrituras. La app está ilustrada con el gráfico que se muestra en la imagen siguiente:

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *