
Um de nossos clientes tem uma instância do Windows 2008 Hyper-V hospedada pela CrystalTech e, às vezes, o servidor Hyper-V pai é reiniciado sem que a VM filha seja desligada corretamente.
Como resultado, quando o servidor volta a ficar online, o serviço SQL Server Express na VM não é iniciado, mesmo que esteja definido como Automático. Não há entradas de erro no log de eventos. Se você reinicializar o servidor normalmente, o SQL Server Express inicia perfeitamente.
Alguém já teve esse problema? Alguma dica para resolver isso?
Por outro lado, alguém tem algum script/método interessante para notificações serem enviadas por e-mail quando o servidor é desligado inesperadamente?
Por outro lado, alguém conhece algum bom host para VMs Hyper-V?
Responder1
Muito estranho. Acho que há algo estranho acontecendo aqui. Se você tiver TechNet ou MSDN, eu gravaria um caso com a MS para resolver isso. Pode haver alguma estranheza em seu ambiente ou na instalação padrão do Windows ou SQL Server que esteja causando isso.
Uma coisa que você pode fazer é definir um item do Agendador de tarefas conforme mencionado acima para iniciá-lo.
Se você definir uma reinicialização do serviço em caso de falha, isso funcionará?
Responder2
Todos os outros serviços são iniciados?
Estou surpreso que ele nem esteja tentando começar. Você verificou várias instâncias? Já vi pessoas pensarem que há apenas um caso em que há mais e estão verificando o caso errado.
Não há nenhuma razão fundamental para que o SQL Express não deva ser iniciado. Uma falha de VM é como um desligamento total do SQL e normalmente ele se reinicia sozinho.
Também posso procurar uma dependência de serviço. Eu esperaria que o SQL Server estivesse na raiz da cadeia de dependências, mas é possível que dependa de outra coisa.
Responder3
Eu tive o mesmo problema. No meu caso, descobri que o serviço SQL Server Browser, que fornece informações de conexão do SQL Server aos computadores clientes, de alguma forma foi alterado para Desativado. Mudou sua propriedade para Automático e tudo voltou a funcionar normalmente.
Responder4
Que tal configurar um aplicativo para ser executado na inicialização que apenas verifica a execução do SQL e o inicia se não estiver presente? Você pode até configurá-lo para ser executado no Agendador de tarefas, periodicamente.