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

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:
Trouble shooting da TempDB SQL Server


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
Trouble shooting da TempDB SQL Server


Erro:2
Trouble shooting da TempDB SQL Server


Erro:3
Trouble shooting da TempDB SQL Server


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.
Trouble shooting da TempDB SQL Server


Você deve acessar esse caminho via promt de comand, conforme print:
Trouble shooting da TempDB SQL Server


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

O print mostra a linha digitada:
Trouble shooting da TempDB SQL Server

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.

Trouble shooting da TempDB SQL Server


Nome da Instancia.
Trouble shooting da TempDB SQL Server


Com o SQL Server iniciado no prompt que foi aberto:
Trouble shooting da TempDB SQL Server


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:
Trouble shooting da TempDB SQL Server

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.
Trouble shooting da TempDB SQL Server


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.
Trouble shooting da TempDB SQL Server

Pressione a tecla Y.

Inicie o SQL Server normalmente.
Trouble shooting da TempDB SQL Server


E está pronto.

Mais sobre: sql server tempdb tutorial
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo

Siga nossas contas no Twitter