Por que meu banco de dados não está disponível?

3

Eu tenho um banco de dados no meu servidor que fica constantemente indisponível. Para corrigir, eu fico offline e depois on-line. Olhando para o visualizador de eventos, há três erros em rápida sucessão:

FCB::Open failed: Could not open file C:...\MyDatabase.mdf for file number 1. OS error: 32(The process cannot access the file because it is being used by another process.).

FCB::Open failed: Could not open file C:...\MyDatabase_1.ldf for file number 2. OS error: 32(The process cannot access the file because it is being used by another process.).

A file activation error occurred. The physical file name 'C:...\MyDatabase_1.ldf' may be incorrect. Diagnose and correct additional errors, and retry the operation.

Olhando as propriedades do banco de dados, o caminho do arquivo de log parece correto. Eu não sou realmente um DBA, mas jogo um por necessidade. O que mais eu deveria estar procurando aqui?

(SQL Server 2008 Express SP1)

    
por Michael Itzoe 28.02.2011 / 18:53

2 respostas

2

Como Randolph disse, você provavelmente tem um processo antivírus que mantém os arquivos em questão. Para confirmar isso, obtenha o Process Explorer ou o handle.exe (ou ambos!) Da Sysinternals na Microsoft. Aprenda e ame todas as suas ferramentas.

Se não for AV, mas algo diferente que tenha esses arquivos bloqueados, corrija o que quer que seja.

Além disso, como um aparte, você não deseja dados ou arquivos de log no volume do seu sistema (normalmente a unidade C: \). Se eles preencherem o disco, você terá derrubado seu servidor. Você provavelmente os quer em um volume diferente. Ressalva - com o SQL Express, o tamanho máximo do seu banco de dados pode ser menor do que a quantidade de espaço livre que você terá no disco, mas você quer contar com isso sempre sendo verdade?

    
por 28.02.2011 / 19:38
0

Estou tentando corrigir esse erro há muito tempo! Os vários fóruns no www não fornecem uma correção permanente, mas parece-me que a solução correta é usar um explorador de processos como EMCO UnlockIt para provar que quando o erro ocorre, o arquivo de log ou arquivo mdf que o seu site está tentando abrir é definitivamente naquele momento, sendo bloqueado pelo SQL Server Express (mesmo depois de ter fechado o aplicativo SQL Server Express). Então, depois de fechar o SQL Server, você ainda recebe o erro ao fazer logon no seu site.

Acho que o erro é totalmente preciso. Não há processos suficientes para acessar o arquivo de log ou o banco de dados, ou ambos. Se você tiver o site aberto em sua área de trabalho e, portanto, estiver acessando o banco de dados, e talvez algum outro usuário também esteja tentando fazê-lo (talvez até em um banco de dados diferente, se você tiver mais de um site hospedado). Bem, então você precisa de pelo menos dois processos simultâneos, e isso é antes de o SQL Server ter retido um, então você precisaria de 3 processos, e mais um como outros usuários conectam, mais ainda. Eu posso estar errado, não sou especialista neste assunto. No entanto: -

Se você abrir o SQLSERVER EXPRESS e clicar com o botão direito do mouse no nó raiz, poderá aumentar o limite para processos bloqueados na guia Avançado e também poderá aumentar o número máximo de conexões simultâneas. Parece-me que esta é a solução, de qualquer maneira eu aumentei meu limite para processos bloqueados de 0 a 12 e está funcionando bem até agora. Talvez seja muito tarde da noite, então muitos usuários não estão tentando se conectar, mas de qualquer forma isso parece uma solução sensata para mim!

Boa sorte. Frankie, Leeds West Yorkshire, Reino Unido

    
por 13.08.2014 / 23:25