Arquivando registros

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 5 min. de leitura
  • Gerencie o crescimento do tamanho da tabela e melhore o desempenho da consulta arquivando os registros.

    Você pode arquivar registros em tabelas principais, como a tabela Tarefa [task] e registros em tabelas personalizadas que você cria no Now Platform usando regras de arquivamento.

    • Para arquivar Configuration Management Database (CMDB) registros de IC, use o CMDB Data Manager. Consulte Working with CMDB Data Manager.
    • Para arquivar e-mails, ative o plug-in Retenção de e-mail e use as regras de arquivamento e destruição que vêm com o plug-in. Não use o recurso de arquivamento para criar suas próprias regras de arquivamento na tabela de e-mail.

    Ativação de arquivamento

    Quando você ativa uma regra de arquivamento, o sistema executa as seguintes ações:

    • Cria a tabela de arquivamento no banco de dados. A tabela de arquivamento tem o mesmo nome da tabela primária com um prefixo "ar_". Por exemplo, se você arquivar a tabela Incidente [incidente], a tabela de arquivamento será [ar_incident].
    • Armazena uma versão XML de cada registro arquivado na tabela sys_archive_log. Este log de arquivamento é a mesma tabela para todas as regras de arquivamento e você não pode alterar este comportamento. Também é o único local em que o sys_id é armazenado junto com o valor de exibição dos campos de referência.
      Por exemplo, para ar_incident<assigned_to> Fred Luddy</assigned_to> , o registro sys_archive_log será o seguinte:
      
      <assigned_to display_value="Fred Luddy">5137153cc611227c000bbd1bd8cd2005</assigned_to>
    • Converte várias tabelas unidas em uma única tabela de arquivamento de arquivo simples. A tabela de arquivamento não consiste mais em uma tabela base e tabelas estendidas.
      Figura 1. Conversão de várias tabelas unidas em uma tabela de arquivamento simples
      Conversão de várias tabelas unidas em uma tabela de arquivamento simples
    • Converte valores de campo de referência (valores definidos por referências a registros em outras tabelas) em valores de cadeia de caracteres. O registro de arquivamento contém o valor de exibição do campo de referência no momento do arquivamento.
    • Adiciona um módulo à lista Tabelas de arquivamento na aplicação Arquivamento do sistema. O nome do módulo é uma combinação da palavra "Arquivar" mais o nome de exibição da tabela arquivada. Por exemplo, o módulo de arquivamento da tabela Anexo [sys_attachments] é Arquivar anexo.
    • Cria uma lista da tabela de arquivamento usando a exibição de lista padrão.
    • Cria um formulário para a tabela de arquivamento usando a exibição de formulário padrão. O formulário exclui todos os campos de referência com pontos, como ID do chamador.E-mail.

    Valores de referência convertidos em cadeias de caracteres

    Os dados arquivados são armazenados como um arquivo simples sem campos de referência para outras tabelas. O processo de arquivamento converte todas as referências a outras tabelas em valores de cadeia de caracteres.

    No caso de um campo de referência, a cadeia de caracteres usa o valor de exibição, como o nome de usuário do solicitante. Por exemplo, o campo de referência Solicitante em um incidente exibiria a cadeia de caracteres Usuário ITIL. Se a referência for um ID de documento e a regra de arquivamento incluir a opção de arquivar IDs de documentos relacionados, a cadeia de caracteres será o ID do documento do registro relacionado.

    As mudanças futuras nos valores de referência não são refletidas nos registros arquivados. Por exemplo, se você alterar o nome de usuário de "John A Smith" para "John A Smith", todos os registros de incidentes ativos mostrarão automaticamente o solicitante como "John A Smith" devido à referência entre as tabelas Incidente e Usuário. No entanto, todos os registros de incidentes arquivados exibem o nome de usuário que existia no momento do arquivamento. Da mesma forma, se você excluir um usuário do sistema, os incidentes atuais não exibirão mais o usuário excluído como solicitante. No entanto, os incidentes arquivados ainda exibem a cadeia de caracteres "John Smith" porque esse valor foi usado quando o registro foi arquivado.

    Consultando dados arquivados

    As tabelas arquivadas não são otimizadas para consultas ad hoc. Eles contêm somente entradas de índice para o valor de exibição, data de criação e a chave primária de sys_id.

    Evite fazer consultas sob demanda em uma tabela arquivada, como pesquisar todos os incidentes arquivados de prioridade 1. Em vez disso, pesquise somente nos campos indexados. Por exemplo, pesquise o incidente INC100001 ou incidentes criados em uma data específica.

    Arquivar tabelas e ACLs

    Por padrão, as tabelas de arquivamento usam as ACLs para a tabela desarquivada com o mesmo nome. Por exemplo, a tabela Incidente arquivada [ar_incident] usa as ACLs definidas para a tabela Incidente [incident] desarquivada.

    Você pode gerenciar o acesso a tabelas de arquivamento explicitamente criando ACLs para tabelas de arquivamento específicas e definindo a propriedade glide.security.enable_archive_table_acls como verdadeira. O sistema segue um de dois caminhos:
    1. Se uma ou mais ACLs ativas forem definidas para uma tabela de arquivamento, essas ACLs controlarão o acesso à tabela de arquivamento.
    2. Se nenhuma ACL for definida para uma tabela de arquivamento, o sistema reverterá para o comportamento padrão e usará as ACLs para a versão desarquivada da tabela.
    Nota:
    Os dois caminhos são mutuamente exclusivos: se as ACLs da tabela de arquivamento negarem o acesso, o sistema não tentará reverter para o comportamento padrão.

    A operação de leitura é a única operação avaliada e outras operações são impedidas.

    A IU do plano de execução está ciente dessa lógica e apresenta as informações de acordo. Por exemplo, adicionar a primeira ACL a uma tabela de arquivamento mostra que a ACL da tabela de arquivamento está "mascarando" ACLs na tabela desarquivada (dados originais).

    Se você tiver ACLs existentes em tabelas arquivadas, elas serão ignoradas, a menos que você defina a propriedade glide.security.enable_archive_table_acls como verdadeira. Essas ACLs recém-ativadas podem causar problemas de acesso. Para evitar essa ocorrência, o sistema define a propriedade glide.security.enable_archive_table_acls da seguinte forma:
    • Instâncias sem a propriedade glide.security.enable_archive_table_acls usam o valor padrão falso.
    • As instâncias atualizadas não instalam a propriedade. A propriedade deve ser adicionada manualmente e definida como verdadeira para habilitar o comportamento da ACL da tabela de arquivamento.
    • As instâncias zbootadas instalam a propriedade e a definem como verdadeira.

    Como definir o idioma das cadeias de caracteres arquivadas

    Em instâncias internacionalizadas, o processo de arquivamento usa o idioma do usuário do SISTEMA para selecionar as cadeias de caracteres de valor de exibição.

    Se não houver nenhum usuário do sistema, a instância usará a configuração de idioma padrão para selecionar as cadeias de caracteres de valor de exibição. Você pode criar um usuário do SISTEMA com uma configuração de idioma específica ou definir o idioma padrão do sistema para selecionar o idioma das cadeias de caracteres arquivadas.