AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1547742
Accepted
Tyler N
Tyler N
Asked: 2020-05-02 09:53:56 +0800 CST2020-05-02 09:53:56 +0800 CST 2020-05-02 09:53:56 +0800 CST

Access Database repetidamente "em um estado inconsistente" e "causou um erro grave" - ​​problema recorrente

  • 772

Temos um banco de dados do Access que reside em um servidor em uma pasta compartilhada.

Alguns meses atrás, o banco de dados não podia ser aberto devido a mensagens de erro como:

  • O documento causou um erro grave na última vez em que foi aberto.
  • O Microsoft Access detectou que este banco de dados está em um estado inconsistente e tentará recuperá-lo.

Consegui corrigir o problema executando um "Compactar e reparar" do Access e isso parece ter resolvido.

O problema continuou acontecendo, porém, e toda vez que isso acontece, eu executo o mesmo procedimento:

  1. Vá para o servidor com o arquivo compartilhado e, no Gerenciamento do Computador, feche todas as conexões "Arquivos Abertos" para o arquivo e a pasta.
  2. Abra o banco de dados e execute o "Compact and Repair"
  3. Se o banco de dados criou um arquivo de backup, geralmente chamado de "Backup de [Nome do arquivo original]", mova-o para uma pasta separada para evitar confusão sobre qual arquivo abrir.

Esse procedimento parece corrigir o problema todas as vezes, mas acho que isso não deveria ser feito constantemente. Algumas vezes, o erro ocorre algumas semanas após a última correção, mas às vezes isso acontece um dia após a última correção.

O que aprendi é que várias pessoas (geralmente no máximo 3-4 por vez) acessam esse banco de dados ao mesmo tempo, e não é incomum para quem o usa muito deixá-lo aberto o dia todo. Às vezes, vejo que os usuários o deixaram aberto por dias sem fechá-lo.

Existe algo que eu possa fazer para evitar que isso seja um problema recorrente? Talvez o Access não seja realmente feito para ser usado assim? Existe uma verificação para uma melhor consistência/soma de verificação para o banco de dados para evitar problemas?

Eu pesquisei e parece que isso é uma agulha no palheiro, pode ser uma série de problemas de rede ou outras coisas.

database microsoft-access
  • 1 1 respostas
  • 3686 Views

1 respostas

  • Voted
  1. Best Answer
    Codebreaker007
    2020-05-04T05:05:53+08:002020-05-04T05:05:53+08:00

    Espero poder orientá-lo na direção certa, porque você não forneceu informações sobre a configuração (rede/como o Access está configurado):

    • O mecanismo de banco de dados Jet/ACE é, por padrão, multiusuário -- ele foi desenvolvido desde o início para ser assim. Então isso pode ser descartado como causa

    • Compartilhar um armazenamento de dados Jet/ACE é muito confiável quando a rede está no nível padrão. Padrão significa LAN sobre cabo (Não WAN / DialIn e NÃO wireless, porque a largura de banda deve ser suficiente para Jet/ACE manter o arquivo LDB - para bloqueio multiusuário)
      O uso normal do banco de dados significa um ping pelos PCs locais instância do mecanismo de banco de dados Jet/ACE uma vez por segundo (usando-o com as configurações padrão) e porque o Jet/ACE não pode se recuperar de uma queda de conexão (o que pode ser um evento comum em um ambiente sem fio). usuários em WiFi e antes em ambiente "cabeado" ou aqueles "deixando o acesso aberto por dias" são via WiFi, você deve verificar isso

    • O caso de problema em que o Access falha com "grandeza" é quando um MDB de aplicativo front-end do Access é compartilhado. A razão pela qual ele falha é porque você está compartilhando coisas que não podem ser compartilhadas de forma confiável e não têm motivo para serem compartilhadas. Devido à maneira como os objetos do Access são armazenados em um arquivo MDB (todo o projeto do Access é armazenado em um único campo BLOB em um registro em uma das tabelas do sistema), é muito propenso a corrupção se vários usuários o abrirem. Compartilhar um front-end do Access (ou um MDB não dividido com tabelas e formulários/relatórios/etc. tudo em um MDB) é a fonte de 95% das corrupções de arquivos Access/Jet/ACE. - Se for esse o caso, considere reescrever as partes cruciais de seu aplicativo.

    • Muito raramente aconteciam casos com a instalação de um novo SW de antivírus ou atualização de SW no servidor - isso era causado pelo bloqueio de arquivos do mecanismo JET/ACE para causar estragos. Felizmente, isso pode ser facilmente identificado examinando os logs de eventos no servidor e obtendo um patch do fornecedor do SW que corrigiu o problema em quase todos os casos (ao ter um AV-SW top-10, muitas empresas são afetadas, então o problema é resolvido rapidamente)

    E sim, alguns de meus clientes no passado argumentaram sempre ao atingir o cenário 2 ou 3 "Mas funcionou até agora" ou "fizemos assim ao longo de alguns anos". Em vez de entrar em uma análise prolixo por que começar com um determinado ponto no tempo (principalmente devido à adição de formulários/consultas ou mais usuários usaram WiFi) começou a falhar, removi o problema e tudo funcionou bem a partir de então.
    EDIT
    A rede do OP está passando por alguns andares/prédios. Isso não deve ser problema, desde que a rede seja confiável (= a conexão na rede permanece estável - portanto, o reenvio de pacotes NÃO é um problema para o Access). Ou para expressá-lo na palavra OPs

    "ocasionalmente falha em um único ping que pode ser esse o problema"

    Não, isso pode ser descartado. Mas se forem usados ​​elementos MAN/WAN HW (como conectores GSM/UMTS/LTE, VPN over the air, apenas peças de rede conectadas por antena ou similares), isso pode causar problemas - Aqui apenas uma análise aprofundada de seus logs pode ajudar ou uma rede teste com logon. Você faria muitos pings com falha/pacotes reenviados em um curto período de tempo, não o ruído usual de erros ocasionais que você tem em qualquer rede, mas para conexões perdidas/redefinidas, reconexão a um servidor, etc., enquanto trabalhava no Access
    The OP comentou que tudo está em um arquivo grande (banco de dados e frontend). Para resolver isso, você deve dividir o banco de dados. Aqui está um exemplo: Como dividir um banco de dados do Access

    • 1

relate perguntas

  • A formatação condicional do MS Access está comparando apenas o primeiro dígito dos números

  • Existe uma maneira mais simples de inserir um campo de vários valores no Access?

  • Microsoft Access 2019, relacionamentos um para um (supertipo -> subtipo)

  • Ao importar uma planilha para o Access, como você impede que o Excel atribua automaticamente um tipo de campo de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve