Arquivando registros

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • Gerencie o crescimento do tamanho da tabela e melhore o desempenho da consulta arquivando registros.

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

    • Para arquivar Configuration Management Database (CMDB) Registros de IC, use CMDB Gerenciador de dados. Consulte Working with CMDB Data Manager.
    • Para arquivar e-mails, ative 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 o Incidente [incidente] , a tabela de arquivamento é [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 esse comportamento. É também o único lugar onde o sys_id é armazenado junto com o valor de exibição para campos de referência.
      Por exemplo, para ar_incident Fred Luddy</assigned_to> <assigned_to> , o registro sys_archive_log é 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 plana
      Conversão de várias tabelas unidas em uma tabela de arquivamento plana
    • 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 ao Arquivar tabelas . Arquivamento do sistema aplicação. 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 do Anexo [sys_attachments] a tabela é Arquivo 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 qualquer referência com pontos campos como ID do solicitante.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 valor de exibição como o nome de usuário do solicitante. Por exemplo, o. Solicitante o campo de referência 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 documento 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ê mudar o nome de usuário de "John 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.

    Arquive tabelas e ACLs

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

    Você pode gerenciar o acesso a tabelas de arquivamento explicitamente criando ACLs para tabelas de arquivamento específicas e definindo o. glide.security.enable_archive_table_aclspropriedade para verdadeiro . Em seguida, 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 ACLs for definida para uma tabela de arquivamento, o sistema reverterá para o comportamento padrão e usará as ACLs para a versão não arquivada da tabela.
    Nota:
    Os dois caminhos são mutuamente exclusivos: Se as ACLs da tabela de arquivamento negarem 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" as ACLs na tabela não arquivada (dados originais).

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

    Definição do 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 como selecione o idioma das cadeias de caracteres arquivadas .