Forum
See question

Erro na actualizacao Base dados   

20 views
0
♥ 0

bom dia Base dados Foi actualizada para versao evolution, ao tentar abrir a aplicação emite este erro

 

A DML statement encountered a missing entry in index ID 1 of table ID 1901249828, in the database ‘PRI2023’ due to an interaction with another transaction. If you continue to see this error, consider using Repeatable Read or higher isolation level.
The statement has been terminated.

Faça login para poder traduzir
Primavera
Marked as spam
Criado há 18 horas e 31 minutos antonioquiloessa
a
antonioquiloessa Antonio Quiloessa Iniciante
1 answers
0
Private answer


Este erro indica, na prática, problemas de integridade/corrupção num índice da base de dados PRI2023, que se manifestam durante a atualização/migração para Cegid Primavera Evolution.

Para tentar resolver, siga estes passos no SQL Server (sempre com backup prévio da base de dados):

  1. Confirmar versão de SQL Server e nível de compatibilidade
    • Verifique se está a usar uma versão suportada (mínimo SQL Server 2016 SP2).
    • No Management Studio, execute para a base PRI2023:

      SELECT name, compatibility_level FROM sys.databases WHERE name = 'PRI2023'

      Se o compatibility_level for inferior a 130, ajuste para pelo menos 150 (SQL Server 2019), que tem resolvido vários erros de atualização:

      ALTER DATABASE PRI2023 SET COMPATIBILITY_LEVEL = 150

    • Depois de alterar o nível de compatibilidade, volte a tentar abrir a empresa na Cegid Primavera Evolution e ver se a atualização conclui.
  2. Diagnosticar integridade da base de dados
    Se o erro persistir mesmo com o compatibility level ajustado:

    • No Management Studio, execute:

      DBCC CHECKDB('PRI2023') WITH NO_INFOMSGS, ALL_ERRORMSGS

    • Analise se surgem mensagens em vermelho a indicar corrupção em índices ou tabelas (como aconteceu noutros casos de migração Evolution).
  3. Tentar reparação (com cautela)

    Atenção: os comandos de reparação podem implicar perda de dados. Use primeiro numa cópia/clone da base de dados e só depois, se estiver confortável, em produtivo.

    • Coloque a base de dados em modo de emergência e utilizador único:

    ALTER DATABASE PRI2023 SET EMERGENCY
    ALTER DATABASE PRI2023 SET SINGLE_USER

    • Execute uma tentativa de reparação:

    DBCC CHECKDB('PRI2023', REPAIR_ALLOW_DATA_LOSS)

    • Volte a colocar a base em multi-utilizador:

    ALTER DATABASE PRI2023 SET MULTI_USER

    • Opcionalmente, pode atualizar estatísticas e reindexar tabelas para estabilizar a estrutura:

    EXEC sp_updatestats
    EXEC sp_MSforeachtable 'DBCC DBREINDEX(?)'

    • Depois, volte a tentar abrir a empresa na Cegid Primavera Evolution.
  4. Se continuar a falhar
    • Se DBCC CHECKDB indicar corrupção grave ou não conseguir reparar, será necessário suporte especializado (equipa de suporte Cegid ou DBA) para análise da tabela correspondente ao ID 1901249828 e eventual reconstrução de índices/tabelas.
    • Nesse caso, prepare:
      • Backup da base PRI2023 (ou clone).
      • Resultado completo do DBCC CHECKDB.
      • Log completo da atualização (ficheiro ISTDUP~Exercicio~PRI2023.log).

Resumo prático:

  • Ajustar o compatibility level da base PRI2023 para 150.
  • Correr DBCC CHECKDB para detetar corrupção.
  • Se necessário, usar REPAIR_ALLOW_DATA_LOSS numa cópia da base e reindexar.
  • Voltar a tentar abrir/migrar a empresa na Cegid Primavera Evolution.

Esta resposta foi gerada pelo Cegid Pulse, com base na base na informação disponível em histórico.
Ajude-nos a melhorar esta funcionalidade:
• Se a resposta corresponde à sua questão, assinale-a com "Mark as best answer",
• Se a resposta estiver incorreta, dê-lhe um voto negativo e aguarde a resposta da comunidade.


Faça login para poder traduzir
Marked as spam
Criado há 18 horas e 29 minutos cegidpulse
cegidpulse Cegid Pulse Most Valuable Professional