Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

HQbird 2024R2 Atualização 10 Detalhado O que há de novo

O que há de novo no HQbird 2024R2 Update 10

Visões Materializadas (Novo Recurso no 5.0)

O HQbird agora inclui suporte completo para Visões Materializadas - um novo tipo de objeto de banco de dados que combina a definição de uma visão com o armazenamento físico de uma tabela comum.

Visão Geral

Uma Visão Materializada (MV) é definida usando uma consulta SQL padrão, que o mecanismo usa para preencher uma tabela MV subjacente com linhas de dados. Diferentemente das visões comuns, os dados da MV são persistidos em disco e podem ser indexados. Instruções DML (INSERT, UPDATE, DELETE) não são permitidas diretamente em MVs - os dados devem ser atualizados usando o novo comando REFRESH.

Criando e Gerenciando Visões Materializadas

  • CREATE [OR ALTER] MATERIALIZED VIEW - cria ou substitui uma MV com carga inicial de dados opcional (WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - modifica a definição da MV; remove automaticamente todos os índices existentes.
  • RECREATE MATERIALIZED VIEW - remove qualquer visão existente (comum ou materializada) com o mesmo nome e cria uma nova MV.
  • DROP VIEW - usado para remover uma visão materializada (não existe comando separado DROP MATERIALIZED VIEW).
  • Índices de qualquer tipo podem ser criados em MVs. Constraints e triggers não são suportados.

Convertendo Entre Tipos de Visão

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - converte uma MV em uma visão comum. Todos os índices e dados são removidos.
  • ALTER VIEW ... TO MATERIALIZED - converte uma visão comum em uma visão materializada. Objetos dependentes não são afetados.

Atualizando Dados de Visões Materializadas

A nova instrução REFRESH MATERIALIZED VIEW atualiza o conteúdo da MV. É um comando DDL - a execução é adiada até que a transação atual seja confirmada. Quatro modos estão disponíveis:

  • Recarga completa (modo exclusivo) - REFRESH MATERIALIZED VIEW

    • Desativa índices, exclui todos os dados existentes, recarrega a partir da consulta da MV, reativa índices.
    • Opção mais rápida quando muitas linhas foram alteradas.
    • Requer bloqueio exclusivo na tabela MV.
    • Em erro de carga de dados: os dados recém-carregados são excluídos, os índices são reativados como vazios.
    • Em erro de ativação de índice: o índice afetado permanece inativo; dados e outros índices não são afetados. Erros de construção de índice são relatados como avisos.
  • Atualização concorrente - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Não requer bloqueio exclusivo - consultas concorrentes na MV são permitidas durante a atualização.
    • Usa um algoritmo de mesclagem com dois cursores ordenados: um para os dados atuais da MV, outro para os resultados da consulta da MV.
    • Insere novas linhas, atualiza linhas alteradas, exclui linhas removidas - tudo sob controle de transação.
    • Requer um índice exclusivo na MV.
    • Preferido quando acesso concorrente é necessário ou quando poucas linhas foram alteradas desde a última atualização.
    • Observação: se a consulta da MV contiver ORDER BY, a ordem das linhas pode não ser preservada após a atualização concorrente.
  • Excluir todos os dados - REFRESH MATERIALIZED VIEW DROP DATA

    • Exclui todos os dados da MV e o conteúdo dos índices. Útil para liberar espaço em disco. Requer bloqueio exclusivo.
  • Atualização em cascata - acrescente CASCADE a qualquer uma das formas acima

    • Atualiza todas as MVs das quais a MV determinada depende, na ordem correta de dependência.
    • Cada MV é processada apenas uma vez.
    • CONCURRENTLY CASCADE requer que todas as MVs afetadas tenham um índice exclusivo.
    • DROP DATA CASCADE exclui dados de todas as MVs afetadas.
    • Os nomes das MVs afetadas e a ordem de atualização são relatados como avisos no vetor de status antes da confirmação.

Backup e Restauração (gbak)

  • Backup: os dados da MV não são armazenados no arquivo de backup, assim como nas visões comuns - nenhum tratamento especial é necessário.
  • Restauração: todas as MVs são atualizadas automaticamente ao final do processo de restauração, na ordem correta de dependência.
  • Nova opção do gbak -NO_MATVIEWS (pode ser abreviada para -NO_M) - pula a atualização de MVs durante a restauração.
  • Opção correspondente da Services API: isc_spb_res_no_matviews.
  • Importante: um backup contendo MVs não pode ser restaurado em uma versão do Firebird que não suporte MVs. Use ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED antes do backup ao migrar para uma versão mais antiga.

Limitações Conhecidas / Trabalho Planejado

  • Suporte a replicação - ainda não implementado.
  • Triggers DDL - ainda não implementados.
  • Verificação de direitos de acesso - ainda não implementada.
  • Mensagens de erro - em revisão.

Backup e Recuperação

  • Tarefa de backup de verificação: adicionada exclusão rotativa antes da compactação; coeficientes de cálculo de espaço em disco agora são configuráveis.
  • Tarefa nBackup: corrigida a lógica de pulo; algoritmo de renomeação de journal alterado para renomeação atômica com tentativa para evitar renomeações parciais.
  • Diretório de backup e modelo de nome de arquivo para tarefas BRZ agora são configuráveis:
    • backup-directory - permite especificar o diretório de destino por banco de dados e job.
    • backup-name - permite definir um modelo de nome de arquivo, ex.: brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Validador de entrada adicionado: verifica a validade do nome do diretório e cria o diretório se ele não existir.

Backup em Nuvem / Transferência de Arquivos

  • Adicionado suporte para upload de arquivos via protocolo Socket na tarefa cloudbackup (filetransfer).
  • Opção de compactação seletiva de arquivos por segmento removida - a compactação de arquivos para tarefas correspondentes agora está sempre habilitada.

Trace

  • Adicionado connection_id como campo adicional na configuração de trace.
  • Processamento de relatórios de trace: adicionado agrupamento e filtragem sem distinção de maiúsculas/minúsculas por nome de processo.

VSS Writer

  • Logs de diagnóstico adicionais - informações de estado do banco de dados agora são registradas, incluindo tamanho do banco de dados, data e hora, e saída de gstat -h.

Interface Web

  • Melhorias de localização: traduções corrigidas e algoritmos de localização ajustados em todo o console web.
  • Adicionado elemento divisor visual com texto de rótulo aos diálogos web - permite agrupamento lógico de elementos de formulário.
  • Estratégia de cache-busting alterada para recursos do lado do cliente (páginas web, JS, CSS) para evitar que navegadores usem arquivos desatualizados após uma atualização.

Configuração

  • Nomes de campos de autorização do servidor atualizados (sysdba/owner, serviceAPI).
  • Parâmetro de configuração reservado adicionado para a configuração de idioma/localidade do lado do servidor (Java).
  • Arquivos de configuração padrão corrigidos para corresponder às novas configurações padrão para tarefas de transferência de arquivos:
    • Porta alterada de 8721 para 8722.
    • Usuário padrão alterado de admin2/ admin3 para socketuser.
    • Configuração de força de senha unificada para senha forte em todas as configurações.
  • Ao registrar um arquivo de licença KA, especificar o prefixo de protocolo HTTP/HTTPS no campo de host não é mais necessário.

Correções de Bugs

  • Corrigido um alerta crítico falso acionado quando um banco de dados tem todas as tarefas temporariamente desabilitadas.
  • Corrigido um erro ao recuperar a lista de sessões de trace ativas para sistemas onde o usuário SYSDBA configurado não tem permissão para listar sessões de trace.
  • Corrigido um bug em um componente de descriptografia de terceiros que não tratava corretamente caminhos codificados em UTF-8. Observação: até que o serviço mon/trace seja atualizado e reconstruído, caracteres UTF-8 em caminhos de arquivo ou banco de dados ainda podem causar erros na saída de mon/trace.
  • Corrigido um problema no manipulador de configuração de replicação que retinha incorretamente chaves com valores vazios.
  • Corrigido o tratamento de journal_archive_command para Firebird 4 e versões posteriores (alinhado com a correção upstream no PR #8381 do firebird/firebird).
  • Corrigidos erros no plugin gerador de configuração dg2fbcc.jar e em seu código de invocação.

Instalador e Build

  • Instalador do Windows atualizado com scripts e lógica revisados.
  • Binários da biblioteca do cliente atualizados.
  • OpenSSL atualizado para uma versão mais recente.
  • Ramificações de código condicionais adicionadas para variantes de build específicas do produto.
  • Assinatura de arquivos adicionada ao processo de build do instalador.

Infraestrutura de Localização do Lado do Servidor

Um mecanismo de localização para mensagens de texto do lado do servidor (Java) foi implementado. Os arquivos de localidade estão preparados, mas ainda não preenchidos com traduções, e o mecanismo ainda não está ativado em produção. Esta infraestrutura é destinada à futura localização de mensagens do servidor.