PROBLEMA: Dispositivo 'Temp_db' causa problemas iniciando o SQL Server

Traduções deste artigo Traduções deste artigo
ID do artigo: 158586 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

Se o SQL Server é iniciado para que tempdb é colocado na RAM (ou definindo a opção 'tempdb na RAM' explicitamente ou iniciando no modo de configuração mínima usando o parâmetro -f na linha de comando), o SQL Server tenta iniciado corretamente se um dispositivo com um nome de dispositivo de 'temp_db' já existe.

Causa

Quando tempdb é colocado na RAM, SQL Server tenta primeiro criar um dispositivo de RAM com um nome lógico de 'temp_db' e criar banco de dados tempdb neste dispositivo. Se já existir um dispositivo com o nome 'temp_db', a tentativa para inserir uma entrada na tabela sysdevices falhará; assim, tempdb não pode ser criado.

O errorlog do SQL Server irá conter a seqüência de mensagens de erro a seguir:
Tentativa de inserir uma linha de chave duplicada no objeto 'sysdevices' com índice exclusivo 'sysdevices' (mensagem 2601)

crdb_tempdb: não é possível move o tempdb na RAM; dispositivo RAM não existe, não pode ser criado ou não tem espaço suficiente para tempdb.

O servidor continuar o processo de inicialização e será provavelmente relatório outras mensagens de erro.



Se você tentar usar tempdb durante a inicialização (por exemplo, em um procedimento de inicialização armazenado), seguintes mensagens de erro podem ser informadas e o servidor falhará ao iniciar:
Msg 906: Não pode localizar a linha em sysobjects para sysobjects' Catálogo de sistema' no banco de dados 'tempdb'....

Msg 615: Não é possível localizar id de tabela de banco de dados = 2, nome = 'tempdb'....

Se você tentar acessar tempdb depois que o servidor é iniciado, as mensagens acima serão registradas, mas o servidor não irá parar.

Como Contornar

Para iniciar o servidor, vá para um prompt de comando e navegue até o diretório BINN em que o SQL Server foi instalado (por exemplo, SQL60\BINN para SQL Server 6.0 ou MSSQL\BINN para o SQL Server 6.5). Em seguida, use a seguinte linha de comando, que diferencia maiúsculas de minúsculas, para iniciar o SQL Server:
sqlservr - c -m - T3609 - T4022



Observe que o uso de -m inicia o SQL Server no modo de usuário único. Após o primeiro logon bem-sucedido, as solicitações subseqüentes receberão uma mensagem "Falha de logon" até que a primeira conexão fez check-out. Certifique-se de que você interrompa os processos automatizados que podem estar tentando fazer logon no SQL Server (por exemplo, o SQL Executive, Monitor de desempenho, etc.).

Uma vez SQL Server é iniciado, use ISQL/w para se conectar ao SQL Server. Observe que não será capaz de usar o SQL Enterprise Manager; ela não está disponível com esses parâmetros de inicialização (porque ele usa tempdb). Uma vez conectado, use o seguinte comando para cancelar o dispositivo existente chamado 'temp_db' para que o SQL Server possa criar dispositivo durante a inicialização.
sp_dropdevice 'temp_db'

Se quaisquer outros bancos de dados além de tempdb tiverem sido expandidos para o dispositivo, o comando irá relatar os nomes desses bancos de dados. Esses bancos de dados precisará ser descartado, usando o comando DROP DATABASE, para que o dispositivo temp_db pode ser excluído.



Se SQL Server ainda falhar iniciar com êxito após seguir as etapas acima e tempdb tinha colocado explicitamente na RAM, use o comando a seguir para tentar colocar tempdb novamente em disco.
sp_configure 'tempdb na RAM,' 0
Reconfigurar com substituição

Isso deve colocar tempdb novamente no dispositivo padrão com o tamanho do banco de dados padrão (normalmente de 2 MB no mestre). Pare e reinicie o SQL Server. Neste ponto, você desejará soltar o dispositivo com temp_db nome e criar um dispositivo com um nome diferente e, em seguida, expanda tempdb para este novo dispositivo.

Propriedades

ID do artigo: 158586 - Última revisão: sexta-feira, 4 de outubro de 2013 - Revisão: 3.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: 
kbnosurvey kbarchive kbmt KB158586 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: 158586

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