Dispositivo faltando faz com que banco de dados ser marcado como suspeito

Traduções deste artigo Traduções deste artigo
ID do artigo: 180500 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

SQL Server marca a um banco de dados suspeito se algum dos arquivos de banco de dados do dispositivo for não está disponível quando ele tenta iniciar. Você pode ver um dos seguintes conjuntos de mensagens no log de erro do SQL Server:
Mensagem de erro 1
18/11/96 10:48:32.60 kernel udopen: Brazilian OS erro 32 (O
processo não é possível acessar o arquivo porque ele está sendo usado por outro
processo). durante a abertura/criação do dispositivo físico,
C:\DATA\SQL\MSDB.DAT (ou C:\DATA\SQL\MSDB.MDF)

18/11/96 10:48:32.60 kernel udactivate (principal): Falha ao abrir
dispositivo C:\MSSQL\DATA\MSDB.DAT (ou C:\DATA\SQL\MSDB.MDF) para vdn 127
Mensagem de erro 2
18/11/96 10:48:32.60 kernel udopen: erro do sistema operacional 2 (O
sistema não pode localizar o arquivo especificado.) durante a abertura/criação
de física C:\MSSQL\DATA\MSDB.DAT de dispositivo (ou C:\DATA\SQL\MSDB.MDF)

18/11/96 10:48:32.60 kernel udactivate (principal): Falha ao abrir dispositivo C:\MSSQL\DATA\MSDB.DAT (ou C:\DATA\SQL\MSDB.MDF) para vdn 127
Esses serão seguidas o mais tarde no log de por:
18/11/96 10:48:36.70 kernel udread: erro de sistema operacional 6 (O
o identificador é inválido.) no dispositivo 'C:\MSSQL\DATA\MSDB.DAT' (ou C:\DATA\SQL\MSDB.MDF) (virtpage
0x7f000018).

18/11/96 10:48:36.77 spid11 erro: 840, gravidade: 17, estado: 2

18/11/96 10:48:36.77 spid11 dispositivo MSDBData (com nome físico
'C:\MSSQL\DATA\MSDB.DAT' (ou C:\DATA\SQL\MSDB.MDF) e o número de dispositivo virtual 127) não é
disponível. Contate o administrador do sistema para obter assistência.

18/11/96 10:48:36.77 spid11 1092480 de buffer do banco de dados 'msdb'
possui número de página 0 no cabeçalho da página e número de página 24 in a
cabeçalho de buffer

18/11/96 10:48:37.43 spid11 não é possível continuar com a recuperação de
DBID <5> devido a erros anteriores. Continuar com a próxima
banco de dados.
Por exemplo, executando as seguintes etapas irá demonstrar o problema:
  1. Pare SQL Server.
  2. Emitir o comando seguinte a partir de um prompt de comando no Mssql\Data diretório:

    ren msdb.dat msdb.sav
  3. Inicie o SQL Server.
Você verá os erros acima (aqueles do segundo conjunto) o errorlog do SQL Server. Se você emitir, em seguida, a seguinte consulta no banco de dados mestre
   select name, dbid, mode, status from sysdatabases where dbid =
   db_id('msdb')
				

Você recebe os seguintes resultados:
   name     dbid   mode   status
   ------------------------------
   msdb      5      0      328
				

O status de 328 é avaliada como:
   truncate log on chkpt
   database not recovered yet
   database is suspect
				

Para obter mais informações, consulte o tópico "Sysdatabases (somente banco de dados mestre)" no SQL Server Books Online.

Causa

Durante a inicialização, o SQL Server tenta obter um bloqueio exclusivo no arquivo de dispositivo. Se o dispositivo está sendo usado por outro processo (por exemplo, software de backup) ou se o arquivo estiver faltando, o cenário descrito acima será ser encontrado. Nesses casos, geralmente há nada de errado com os dispositivos e o banco de dados. Para o banco de dados recuperar corretamente, o dispositivo deve ser tornado disponível e o status do banco de dados deve ser redefinido.

Como Contornar

Para contornar esse problema, execute as etapas abaixo. Observe que a etapa final é crítica.
  1. Verifique se o arquivo do dispositivo está realmente disponível.
  2. Use sp_resetstatus complementares procedimento armazenado para redefinir o status de um banco de dados suspeito. Se você ainda não tiver feito isso, crie esse procedimento executando o script Instsupl.sql, encontrado no diretório Mssql\Install. Para obter mais informações sobre sp_resetstatus, consulte o tópico "Reconfigurando o status de suspeito" no SQL Server Books Online.
  3. Execute sp_resetstatus no banco de dados mestre para o banco de dados suspeito:
          use master
          go
          exec sp_resetstatus msdb   -- replace msdb with your database name
     
    						
    você verá a seguinte saída:
          Prior to Update sysdatabases attempt for DBName='msdb', the mode=0
          and status=328 (status suspect_bit=256). For DBName='msdb' in
          sysdatabases, status bit 256 was forced Off and mode was forced to
          0. WARNING: You MUST stop/restart SQL Server prior to accessing this
          database!
     
    					
  4. Pare e reinicie o SQL Server.
  5. Verifique se o banco de dados foi recuperado e está disponível.
  6. Executar o DBCC NEWALLOC, o DBCC TEXTALL e DBCC CHECKDB.

Mais Informações

Se o banco de dados ainda estiver marcado como suspeito após executar essas etapas, pode haver outros problemas impedindo o banco de dados de recuperação. Neste ponto, você pode restaurar de um bom backup ou definido o banco de dados para modo de emergência e use o programa de cópia em massa (BCP) para copiar os dados em massa check-out. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
165918Ignorar modo (emergência) e DUMP TRANSACTION WITH NO_LOG
importante Se você usa este artigo (Q165918) e certeza sobre as conseqüências completa de qualquer um das ações que você está executando, contate seu provedor de suporte para obter assistência.

Propriedades

ID do artigo: 180500 - Última revisão: terça-feira, 30 de maio de 2006 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
Palavras-chave: 
kbmt kbprb KB180500 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 180500
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com