Como a mudança do SID do Windows afeta o SQL Server?

11

Nossos administradores do Windows identificaram um problema com a maneira como clonam servidores Windows. Aparentemente, alguns dos servidores clonados acabam com o mesmo SID no nível do sistema operacional. Ouvi dizer que a Microsoft não suporta servidores com SIDs duplicados. Portanto, os SIDs nesses servidores precisam ser alterados.

Estou curioso em saber como isso afeta o SQL Server. Alguma ideia? Como isso afeta os servidores de banco de dados em cluster?

    
por Ra Osolage 18.06.2009 / 20:03

6 respostas

9

Deixe o SID sozinho. NewSID foi aposentado porque Mark Russinovich fez algumas escavações e descobriu que todo o "duplicado SIDs == ruim!" A linha que todos nós tocamos em nossos crânios ao longo da última década é apenas uma bobagem.

Veja a última entrada do blog de Mark: O Mito de Duplicação do SID da Máquina .

    
por 03.11.2009 / 15:25
6

Eu definitivamente recomendaria contra a alteração do SID, até que você leia: Alterando o SID da máquina com o NewSID quebras do SQL Server (e como corrigi-lo)

Apparently, some of the cloned servers end up with the same SID at the OS level.

Eu arriscaria adivinhar que TODOS os seus sistemas clonados têm o mesmo SID. O GhostWalk pode regenerar os SIDs para você. Usar o sysprep em sua imagem clone inicial também pode salvá-lo em futuros sistemas.

Se você instalou o SQL Server NÃO MUDE O SID. Coisas ruins acontecerão.

    
por 18.06.2009 / 20:07
2

Você pode usar o NewSID do sysinternals: link

Altere o nome do computador no SQL:

use master
sp_dropserver '<old computer name>'
GO
sp_addserver '<new computer name>', local
GO

sp_helpserver -- will show you the new computer name

Em seguida, reinicie o serviço do sql server.

    
por 18.06.2009 / 20:23
2

Se o seu banco de dados fizer transações remotas usando o Microsoft Distributed Transaction Coordinator, esteja ciente de que as máquinas clonadas também têm o mesmo ID do MSDTC, que não é o SID e não é alterado pelo NewSID.

Você verá isso no Visualizador de Eventos:

The local MS DTC detected that the MS DTC on SERVER has the same unique identity as the local MS DTC. This means that the two MS DTC will not be able to communicate with each other. This problem typically occurs if one of the systems were cloned using unsupported cloning tools. MS DTC requires that the systems be cloned using supported cloning tools such as SYSPREP. Running 'msdtc -uninstall' and then 'msdtc -install' from the command prompt will fix the problem. Note: Running 'msdtc -uninstall' will result in the system losing all MS DTC configuration information.

Eu resolvo assim:

msdtc -uninstall

Aguarde alguns minutos e, em seguida,

msdtc -install
sc config msdtc start= auto
sc start msdtc
    
por 18.06.2009 / 20:14
2

Use a ferramenta agora da Microsoft NewSID ou o sysprep, que é mais ou menos como instalando o windows sem toda a cópia de arquivos.

Eu não acho que você pode juntar dois computadores ao mesmo domínio com o mesmo SID, então eu diria que os servidores SQL em cluster não teriam chance, já que os servidores precisam estar em um domínio.

    
por 18.06.2009 / 20:10
1

A única maneira suportada para clonar um sistema é com o sysprep. Há um monte de razões para não clonar um servidor sql:

- Não é suportado pelo Microsoft CSS.

O -SQL não funcionará corretamente até ser "renomeado".

-Se você tiver serviços de denúncia, também será escolhido.

- As contas do Sistema e do Serviço de Rede receberão um novo SID e senhas, portanto, se você tiver usado essas contas como serviço, haverá algum problema.

O SQL Server cria alguns bons grupos locais com o formato. SQLServer2005MSSQLUser $$ MSSQLSERVER. Não é suportado para renomear estes

Para corrigir a situação, eu faria -

Quebre o cluster, recrie o sistema, instale o SQL, crie um novo cluster, execute um backup no servidor que não foi recriado, pare-o, restaure esse backup para o novo cluster, aponte o aplicativo para o novo cluster, reconstruir o servidor restante e adicioná-lo ao novo cluster

- alternativamente (provavelmente mais fácil) porque não construir um novo servidor com novo nome (isso resolverá possíveis problemas com o SID de qualquer tipo) e, em seguida, interromperá a instalação do cluster SQL, junte-o ao cluster, faça failover para essa caixa e repita o processo, dessa forma sem tempo de inatividade e sem necessidade de backup / restauração (embora eu sugiro que você fez embora de qualquer maneira). Usamos zznode1, zznode2 e um nome de cluster, dessa forma, criar zznode3 e uni-lo ao cluster é simples, pois o nó não é referenciado quando no cluster. Espero que ajude.

    
por 18.06.2009 / 20:17