Oficina da Net Logo

Trouble shooting da TempDB SQL Server

O procedimento deve ser usando quando o array que hospeda a tempdb falhar. Quando isso acontece o SQL Server retorna um erro,pois, o caminho aonde a tempdb estava não foi encontrado.

Por | @oficinadanet Programação Pular para comentários

Quando usar este procedimento?


O procedimento deve ser usando quando o array que hospeda a tempdb falhar. Quando isso acontece o SQL Server retorna um erro,pois, o caminho aonde a tempdb estava não foi encontrado.

Cenário: Imagine um cenário que temos a tempdb em um disco de nome S, conforme print:
http://www.oficinadanet.com.br//imagens/coluna/2679//caminhostempdb.jpg


E esse disco falhou ou a letra não é mais a mesma(se você trocou a letra depois da falha). Quando o SQL Server iniciar na próxima vez ele retornará as seguintes mensagens no Event Viewer:
Erro:1
http://www.oficinadanet.com.br//imagens/coluna/2679/erro1.jpg


Erro:2
http://www.oficinadanet.com.br//imagens/coluna/2679/erro2.jpg


Erro:3
http://www.oficinadanet.com.br//imagens/coluna/2679/erro3.jpg


Quando aparecer qualquer dessas mensagens, que dizer que a tempdb não foi encontrada. A solução para esse tipo de problema é: Se conectar ao SQL Server via prompt de comando e alterar o arquivo da tempdb de unidade. Vá até a a pasta aonde encontra-se os binários do SQL Server.
http://www.oficinadanet.com.br//imagens/coluna/2679/binario.jpg


Você deve acessar esse caminho via promt de comand, conforme print:
http://www.oficinadanet.com.br//imagens/coluna/2679/td_procedimento.jpg


Digite a linha de comando abaixo para inicar o SQL Server pelo prompt.
Sqlservr.exe -f -m -sNomeDaInstancia

O print mostra a linha digitada:
http://www.oficinadanet.com.br//imagens/coluna/2679/td_promt.jpg

Obs: O SQL Server Agent deve estar desabilitado para a execução desta linha de comando. Se o SQL Server estiver ativo, você não conseguirá usar o SQL em single user mode.
Os parâmetros são explicados abaixo:
  • f ? Executa o sql server com as configurações minimas.
  • m ? Entra no sql server em single user mode.
  • s ? Nome da instancia do sql server. Esse nome pode ser obtido no SQL Server Configuration Manager.

http://www.oficinadanet.com.br//imagens/coluna/2679/td_sqlconfigurationmanager.jpg


Nome da Instancia.
http://www.oficinadanet.com.br//imagens/coluna/2679/mssqlserver.jpg


Com o SQL Server iniciado no prompt que foi aberto:
http://www.oficinadanet.com.br//imagens/coluna/2679/td_sqlserveriniciado.jpg


Quando o SQL Server é inicado desta maneira, a tempdb por default vai para o diretorio de bases de dados padrão do SQL Server de instalação(aonde encontra-se a master, model e msdb). Abra um novo prompt do MS-DOS e use um utilitário de linha de comando para mudar a tempdb de diretório. Use a linha de comando abaixo:
osql.exe -E -sNomeDaInstancia

Conforme o print abaixo:
http://www.oficinadanet.com.br//imagens/coluna/2679/td_osql].jpg

Obs: O parâmetro -E é a conexão trusted (integrada com o windows), o usuário que está executando este procedimento deve ter permissões de SA no SQL Server. Neste exemplo usamos o login TMKTSQLSVC que é uma conta do windows com permissões de SA.

Após conectado ao SQL Server, execute os comandos abaixo para modificar a tempdb para a nova unidade.
USE MASTER
GO
ALTER DATABASE tempdb MODIFY FILE 
(NAME= tempdev, FILENAME= 'F:/MSSQL2005/MSSQL/SYS_DBS/DATA/tempdb.mdf')
GO
ALTER DATABASE tempdb MODIFY FILE 
(NAME= templog, FILENAME= 'F:/MSSQL2005/MSSQL/SYS_DBS/LOG/templog.ldf')


O SQL Server retorna a mensagem que os arquivos da tempdb serão movidos após a próxima reinicialização do serviço do SQL Server.
http://www.oficinadanet.com.br//imagens/coluna/2679/td_tempdb.jpg


Digite exit na janela aonde você digitou os comandos e aperte a tecla enter.
Na outra janela de prompt que está em aberta pressione CTRL C aparecerá uma mensagem solicitando confirmação se você deseja fazer o shutdown do SQL Server.
http://www.oficinadanet.com.br//imagens/coluna/2679/td_msg.jpg

Pressione a tecla Y.

Inicie o SQL Server normalmente.
http://www.oficinadanet.com.br//imagens/coluna/2679/inicieosqlnormalmente.jpg


E está pronto.

Comentários
Carregar comentários
  • NEWSLETTER

    As novidades de tech no seu
    e-mail, inscreva-se grátis ;)