Usando o CNAME no DNS para permitir acesso mais fácil ao banco de dados MSSQL

2

Minha empresa me pediu para desenvolver um plano de migração de servidor para reorganizar sua rede e facilitar a execução de tarefas de TI. Eles atualmente têm três servidores MSSQL. O plano atual é migrar todos os bancos de dados para um único servidor MSSQL e, em seguida, configurar a redundância. Ainda estou trabalhando nessa parte do plano.

Eles desenvolvem muitos aplicativos personalizados para uso interno que coletam muitos dados desses bancos de dados. Infelizmente, eles tiveram muitos programadores no passado que codificaram os nomes dos servidores MSSQL em vários aplicativos e procedimentos armazenados. Atualmente, estou trabalhando em todo o código para corrigir esse problema.

Aqui está a minha pergunta. Em vez de inserir o nome do novo servidor MSSQL em todos os aplicativos diferentes, que tal usar DNS A / CNAMEs para cada banco de dados (por exemplo, database1.domain.com, database2.domain.com). Isso permitiria que o administrador de TI alterasse facilmente a localização física do banco de dados e atualizasse o CNAME sem envolver um programador. Na minha opinião, isso tornaria a administração muito mais fácil e permitiria a escalabilidade que a empresa espera no final deste ano.

Atualmente, usamos o Windows 2003 Server Standard e o MS SQL 2005 Standard.

Qual é a sua opinião sobre essa abordagem? Sua ajuda é muito apreciada.

    
por ThaKidd KG5ORD 22.07.2010 / 02:25

4 respostas

2

Esta é uma boa idéia TM . Você também pode usar o CNAMES junto com um Sufixo de pesquisa de DNS para realocar também todos os nomes antigos de servidores codificados para os novos servidores MSSQL.

    
por 22.07.2010 / 02:29
2

Uma abordagem alternativa é configurar um alias de cliente nativo do SQL Server no host em que o aplicativo personalizado está sendo executado. Isso pode não ser prático se você tiver um farm de servidores com vários servidores da Web ou pilhas de clientes fatais (a menos que você o automatize), mas que tenha seu lugar.

Também é a única maneira de obter aplicativos que apontam para uma instância nomeada do sql server quando ela não está definida na string de conexão.

    
por 22.07.2010 / 03:02
1

Eu faço domething similar. Quando eu comecei na minha empresa atual, eles usaram um registro A para cada banco de dados DSN: db1.domain.com por exemplo. Eu criei registros CNAME em vez disso, para que eu pudesse apontar cada DSN do banco de dados para um único registro A (para o servidor SQL) por meio do CNAME. Agora, se eu mudar de servidor, eu simplesmente mudo um registro A e estou de volta aos negócios.

Então você vai querer usar registros CNAME e não registros. Se você usar registros A, terá que excluir e recriar cada um deles quando mudar de servidor.

    
por 22.07.2010 / 02:39
0

Existe um belo artigo na Tech Republic sobre este assunto.

Na verdade, o autor descreve uma estratégia que estou em processo de implementação na qual você configura um CNAME separado para cada banco de dados - não apenas o servidor.

Isso permite a flexibilidade de mover um único banco de dados de um SQL Server para outro sem ter que tocar em nenhum cliente ou código!

link

    
por 14.09.2010 / 15:03