Esta página fue traducida automáticamente. Lee el original en inglés. English

Biblioteca de IBSurgeon

HQbird 2024R2 Update 10 Detallado Qué Hay de Nuevo

Novedades en HQbird 2024R2 Update 10

Vistas Materializadas (Nueva Funcionalidad en 5.0)

HQbird ahora incluye soporte completo para Vistas Materializadas - un nuevo tipo de objeto de base de datos que combina la definición de una vista con el almacenamiento físico de una tabla regular.

Resumen

Una Vista Materializada (MV) se define mediante una consulta SQL estándar, que el motor utiliza para poblar una tabla MV subyacente con filas de datos. A diferencia de las vistas regulares, los datos de las MV se persisten en disco y pueden indexarse. Las sentencias DML (INSERT, UPDATE, DELETE) no están permitidas directamente en las MV - los datos deben actualizarse utilizando el nuevo comando REFRESH.

Creación y Gestión de Vistas Materializadas

  • CREATE [OR ALTER] MATERIALIZED VIEW - crea o reemplaza una MV con carga de datos inicial opcional ( WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - modifica la definición de la MV; elimina automáticamente todos los índices existentes.
  • RECREATE MATERIALIZED VIEW - elimina cualquier vista existente (regular o materializada) con el mismo nombre y crea una MV nueva.
  • DROP VIEW - se utiliza para eliminar una vista materializada (no existe un comando separado DROP MATERIALIZED VIEW).
  • Se pueden crear índices de cualquier tipo en las MV. No se admiten restricciones ni disparadores.

Conversión entre Tipos de Vista

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - convierte una MV en una vista regular. Todos los índices y datos se eliminan.
  • ALTER VIEW ... TO MATERIALIZED - convierte una vista regular en una vista materializada. Los objetos dependientes no se ven afectados.

Actualización de Datos de Vistas Materializadas

La nueva sentencia REFRESH MATERIALIZED VIEW actualiza el contenido de la MV. Es un comando DDL - su ejecución se difiere hasta que la transacción actual se confirme. Hay cuatro modos disponibles:

  • Recarga completa (modo exclusivo) - REFRESH MATERIALIZED VIEW

    • Desactiva los índices, elimina todos los datos existentes, recarga desde la consulta de la MV, reactiva los índices.
    • Opción más rápida cuando muchas filas han cambiado.
    • Requiere bloqueo exclusivo en la tabla MV.
    • En caso de error de carga de datos: los datos recién cargados se eliminan, los índices se reactivan como vacíos.
    • En caso de error de activación de índice: el índice afectado queda inactivo; los datos y otros índices no se ven afectados. Los errores de construcción de índices se informan como advertencias.
  • Actualización concurrente - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • No requiere bloqueo exclusivo - se permiten consultas concurrentes sobre la MV durante la actualización.
    • Utiliza un algoritmo de fusión con dos cursores ordenados: uno para los datos actuales de la MV y otro para los resultados de la consulta de la MV.
    • Inserta filas nuevas, actualiza filas modificadas, elimina filas removidas - todo bajo control de transacción.
    • Requiere un índice único en la MV.
    • Preferible cuando se necesita acceso concurrente o cuando pocas filas han cambiado desde la última actualización.
    • Nota: si la consulta de la MV contiene ORDER BY, el orden de las filas puede no preservarse después de una actualización concurrente.
  • Eliminar todos los datos - REFRESH MATERIALIZED VIEW DROP DATA

    • Elimina todos los datos de la MV y el contenido de los índices. Útil para liberar espacio en disco. Requiere bloqueo exclusivo.
  • Actualización en cascada - añada CASCADE a cualquiera de las formas anteriores

    • Actualiza todas las MV de las que depende la MV dada, en el orden de dependencia correcto.
    • Cada MV se procesa solo una vez.
    • CONCURRENTLY CASCADE requiere que todas las MV afectadas tengan un índice único.
    • DROP DATA CASCADE elimina los datos de todas las MV afectadas.
    • Los nombres de las MV afectadas y el orden de actualización se informan como advertencias en el vector de estado antes de la confirmación.

Copia de Seguridad y Restauración (gbak)

  • Copia de seguridad: los datos de las MV no se almacenan en el archivo de copia, igual que las vistas regulares - no se requiere manejo especial.
  • Restauración: todas las MV se actualizan automáticamente al final del proceso de restauración, en el orden de dependencia correcto.
  • Nuevo modificador de gbak -NO_MATVIEWS (puede abreviarse como -NO_M) - omite la actualización de MV durante la restauración.
  • Opción correspondiente de Services API: isc_spb_res_no_matviews.
  • Importante: una copia de seguridad que contenga MV no puede restaurarse en una versión de Firebird que no admita MV. Utilice ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED antes de la copia de seguridad al migrar a una versión anterior.

Limitaciones Conocidas / Trabajo Planificado

  • Soporte de replicación - aún no implementado.
  • Disparadores DDL - aún no implementados.
  • Verificación de derechos de acceso - aún no implementada.
  • Mensajes de error - en revisión.

Copia de Seguridad y Recuperación

  • Tarea de copia de verificación: se añadió eliminación rotativa antes de la compresión; los coeficientes de cálculo de espacio en disco ahora son configurables.
  • Tarea nBackup: se corrigió la lógica de omisión; el algoritmo de renombrado de diario se cambió a renombrado atómico con reintento para evitar renombrados parciales.
  • El directorio de copia de seguridad y la plantilla de nombre de archivo para tareas BRZ ahora son configurables:
    • backup-directory - permite especificar el directorio de destino por base de datos y trabajo.
    • backup-name - permite definir una plantilla de nombre de archivo, p. ej. brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Se añadió un validador de entrada: verifica la validez del nombre del directorio y crea el directorio si no existe.

Copia de Seguridad en la Nube / Transferencia de Archivos

  • Se añadió soporte para carga de archivos mediante protocolo Socket en la tarea cloudbackup (filetransfer).
  • Se eliminó la opción de compresión selectiva de archivos por segmento - la compresión de archivos para las tareas correspondientes ahora está siempre habilitada.

Trace

  • Se añadió connection_id como campo adicional en la configuración de trace.
  • Procesamiento de informes de trace: se añadió agrupación y filtrado sin distinción de mayúsculas/minúsculas por nombre de proceso.

VSS Writer

  • Se añadió registro de diagnóstico adicional - ahora se registra información del estado de la base de datos, incluido el tamaño de la base de datos, fecha y hora, y la salida de gstat -h.

Interfaz Web

  • Mejoras de localización: traducciones corregidas y algoritmos de localización ajustados en toda la consola web.
  • Se añadió un elemento divisor visual con texto de etiqueta a los diálogos web - permite la agrupación lógica de elementos de formulario.
  • Se cambió la estrategia de invalidación de caché para recursos del lado del cliente (páginas web, JS, CSS) para evitar que los navegadores utilicen archivos desactualizados después de una actualización.

Configuración

  • Nombres de campos de autorización del servidor actualizados ( sysdba/owner, serviceAPI).
  • Se añadió un parámetro de configuración reservado para la configuración de idioma/región (locale) del lado del servidor (Java).
  • Archivos de configuración predeterminados corregidos para coincidir con los nuevos valores predeterminados para tareas de transferencia de archivos:
    • Puerto cambiado de 8721 a 8722.
    • Usuario predeterminado cambiado de admin2/ admin3 a socketuser.
    • Configuración de fortaleza de contraseña unificada a contraseña fuerte en todas las configuraciones.
  • Al registrar un archivo de licencia KA, ya no se requiere especificar el prefijo de protocolo HTTP/HTTPS en el campo de host.

Correcciones de Errores

  • Se corrigió una alerta crítica falsa que se activaba cuando una base de datos tenía todas las tareas temporalmente deshabilitadas.
  • Se corrigió un error al recuperar la lista de sesiones de trace activas para sistemas donde el usuario SYSDBA configurado no tiene permiso para listar sesiones de trace.
  • Se corrigió un error en un componente de descifrado de terceros que no manejaba correctamente rutas codificadas en UTF-8. Nota: hasta que el servicio mon/trace se actualice y reconstruya, los caracteres UTF-8 en rutas de archivos o bases de datos pueden seguir causando errores en la salida de mon/trace.
  • Se corrigió un problema en el manejador de configuración de replicación que retenía incorrectamente claves con valores vacíos.
  • Se corrigió el manejo de journal_archive_command para Firebird 4 y versiones posteriores (alineado con la corrección ascendente en firebird/firebird PR #8381).
  • Se corrigieron errores en el plugin generador de configuración dg2fbcc.jar y su código de invocación.

Instalador y Compilación

  • Instalador de Windows actualizado con scripts y lógica revisados.
  • Binarios de la biblioteca cliente actualizados.
  • OpenSSL actualizado a una versión más reciente.
  • Se añadieron ramas de código condicionales para variantes de compilación específicas del producto.
  • Se añadió firma de archivos al proceso de compilación del instalador.

Infraestructura de Localización del Lado del Servidor

Se ha implementado un mecanismo de localización para mensajes de texto del lado del servidor (Java). Los archivos de locale están preparados pero aún no se han poblado con traducciones, y el mecanismo aún no está activado en producción. Esta infraestructura está destinada a la localización futura de mensajes del servidor.