Procurando por um provedor de hospedagem DNS com failover automático e troca de função

2

Eu preciso configurar o failover automático com duas instâncias do SQL Server e o espelhamento. Existem vários hosters DNS (como DNS Made Easy e Netriplex) que fornecem failover automático. Eles estão monitorando suas instâncias do servidor a cada minuto e, se o principal desce, o nome do domínio é resolvido para o IP do servidor secundário.

Meu problema é que eu também preciso mudar as funções do servidor quando estou em um failover automático e isso não é suportado pelo meu provedor de hospedagem DNS atual (DNS Made Easy).

Em outras palavras: Supondo que eu tenha dois servidores de banco de dados - A e B. A é o servidor primário e B está apenas aguardando caso que A apague. Quando A desce, B assume e se torna o novo servidor principal. Quando A volta, é o novo servidor secundário e fica em espera até que B falhe. Quando B falha, A assume e torna-se o primário do servidor novamente.

Existe algum host de DNS que ofereça esse tipo de funcionalidade?

Obrigado,

Adrian

    
por Adrian Grigore 29.05.2011 / 11:10

3 respostas

0

Como acabei de aprender, há uma maneira simples de lidar exatamente com esse cenário: Especificar o parceiro de failover na cadeia de conexão. Algo como isso seria o truque:

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;

Editar: não sei como entender a objeção no comentário abaixo. Este extraído do MSDN descreve exatamente o meu cenário?

Alémdisso,de este artigo :

If you connect with ADO.NET or the SQL Native Client to a database that is being mirrored, your application can take advantage of the drivers ability to automatically redirect connections when a database mirroring failover occurs. You must specify the initial principal server and database in the connection string and the failover partner server.

    
por 29.05.2011 / 23:50
3

Eu não acho que o DNS seja o mecanismo apropriado para esse tipo de failover. Na minha experiência, o failover de banco de dados é normalmente tratado por:

  • A) Software de cluster que migra um endereço IP flutuante entre os diferentes servidores (ao mesmo tempo em que monitora e migra serviços automaticamente conforme necessário) ou
  • B) Um balanceador de carga que fornece um endereço IP virtual na frente dos diferentes servidores (no caso de nós multi-mestre).

O problema com o uso do DNS para isso é que as pesquisas de DNS podem ser armazenadas em cache em vários níveis entre o usuário final e seu servidor. Portanto, mesmo que você altere a entrada DNS imediatamente, pode levar várias horas até que a alteração seja propagada para o usuário final, e seu serviço ficará inativo neste momento.

    
por 29.05.2011 / 11:25
2

Desculpe, mas não, você não pode fazer isso.

Os servidores SQL normalmente não são expostos diretamente à Internet, , portanto, os servidores DNS e SQL públicos juntos são uma combinação bastante incomum. Por esse motivo, você não encontrará nenhum host DNS com verificações de integridade automatizadas para o SQL Server.

Em princípio, você pode proteger um SQL Server a um ponto em que ele possa estar voltado para a Internet. Mas mesmo assim; Você tem certeza de que é isso que você quer? Você já considerou todos os possíveis riscos de segurança associados a uma exploração de estouro de buffer no SQL Server? Não conheço os detalhes da sua arquitetura, mas à primeira vista, esse design parece errado.

Em seguida, SQL Server é uma coisa de estado . Se o SQL Server primário travar bem no meio de uma execução longa de ALTER TABLE ou uma transação, então não é óbvio em que estado o servidor de backup está. Controlar o failover de um SQL Server nem sempre é possível automatizar, você pode precisar de um DBA para trazer os servidores de volta a um estado consistente. Eu certamente não confiaria em um host DNS externo, que não tem conhecimento do meu domínio de aplicativo, para lidar com failover de banco de dados & integridade dos dados corretamente.

Por último, o failover de DNS pode levar muito tempo para ser propagado. Caches DNS, bem, resultados de consulta de cache, e mesmo se você definir o TTL do DNS baixo, .

    
por 29.05.2011 / 12:12