Instâcia SQL Server com nome diferente do servidor

Fala pessoal, tudo bem?
Esses dias em um assessment peguei um caso que as rotinas do Ola estavam falhando e ao investigar o problema era devido a mudança no nome do servidor física. Essa mudança faz com que o servidor tenha um nome diferente da instância do SQL pois os metadados do SQL nao são alterados.

Para simular um dos problemas que podem ocorrer com essa alteração, segui os passos:

  • Criei uma máquina com o nome adminDga
  • Instalei a instância padrão
  • Alterei o nome do servidor e reiniciei
  • Connectei passando o nome antigo.

Para corrigir eu acessar passando o localhost ou “.” no Server Name, validei o que estava na sys.servers, conforme abaixo:

Esse é o script para instância padrão e nomeada;

-- Instência Default
sp_dropserver 'nome_antigo'
GO
sp_addserver 'nome_novo', local
GO

-- instância nomeada
sp_dropserver <'nome_antigo\instancia'>
GO
sp_addserver <'nome_novo\instancia'>, local
GO

Depois da atualização, também é necessário reiniciar o serviço do sql para que as funções de configuração sejam recarregas. Veja que após a correção a @@servername e a SERVERPROPERTY(‘ServerName’) continuam erradas:

Após reiniciar o serviço, tudo certo:

Voltando ao erro do início, os scripts do Ola Hallengren utilizam bastante as propriedades SERVERPROPERTY(‘ServerName’), então corrigindo essa propriedade, também corrigia o problema.

Outros itens que podem vir a falhar com a mudança de nome do servidor são os logins remotos

-- remote logins
select 
srl.remote_name as RemoteLoginName, 
sss.srvname
from sys.remote_logins srl join sys.sysservers sss on srl.server_id = sss.srvid

Servidores com replicação e espelhamentos também têm suas particularidades.

Então é isso pessoal.
Abs

Deixe um comentário