Sugestões de HA para sites separados geograficamente

2

Eu tenho 6 instâncias de sql server que eu preciso estar altamente disponível sendo hospedado em dois sites (um como principal, um como DR). O failover automático transparente é necessário. A maioria é bastante chata e não faz muito, dois são muito usados para escrever.

Os bancos de dados mais movimentados processam, em média, 400.000 trans / min, chegando a 900.000 e geram ~ 10 gig por dia de novos dados cada.

Ambos os sites são os mesmos, ambos têm netapps 15k SAS iscsi sans.

Atualmente, temos o servidor win 2003, padrão sql server 2005. O espelhamento de sincronização é muito lento e adiciona 2ms a cada transação.

Consegui persuadir o cliente a pagar pelo Windows Server 2008 e pelo SQL Server 2008, com a visão de possivelmente ter um cluster de failover (com um nó em cada cluster) entre os dois sites com o netapps fazendo a replicação entre sites. .

Como você realizaria o HA de site duplo com um único servidor em cada site?

Obrigado

    
por Blootac 15.02.2011 / 15:05

3 respostas

2

Se um failover automático verdadeiramente transparente for necessário e você não puder manipular uma sobrecarga de 2ms por transação, sua melhor opção provavelmente será a replicação bidirecional com um front-end de balanceador de carga muito bom (como F5 Big-IPs). Dessa forma, os dois servidores SQL estão sempre disponíveis.

Há muitas desvantagens associadas à replicação bidirecional - as alterações de esquema podem ser complicadas, você precisa refazer seus campos de identidade (diferentes sementes, incrementos pares / ímpares) e não é autocorreção. Você precisa de monitoramento para saber quando a replicação é interrompida e precisa de uma equipe 24 horas por dia, sete dias por semana, para agir rapidamente, porque os clientes não ficarão satisfeitos se não virem dados consistentes nos dois nós. Certas falhas também podem fazer com que os dados estejam em um nó e não no outro. Por exemplo, se a replicação parar de funcionar e, em seguida, 10 minutos depois, todo o servidor ficar inativo, o segundo servidor não verá esses 10 minutos de dados até que você obtenha o backup principal e corrija a replicação.

    
por 15.02.2011 / 15:12
3

Nada é 100% transparente. O cluster de failover tem tempo de inatividade associado durante a parada e inicia no outro nó. Se o aplicativo tiver reconhecimento de cluster e / ou tiver nova lógica, não haverá problema. O nome da instância permanece o mesmo, portanto, esse cluster de nível é transparente.

Replicação e envio de log têm nomes de servidor diferentes (origem / destino), portanto, é necessário empregar algum tipo de tecnologia / alias / whatever para abstrair a alteração de nome e / ou alterar a configuração do aplicativo (supondo que eles não o fizeram) t nomes de código fixo). O espelhamento de banco de dados tem uma história semelhante, mas se o aplicativo for codificado para o SNAC, você poderá usar o failover automático com o Witness.

O DBM / log shipping / repl também exige que você sincronize objetos que não estejam fora do banco de dados e certifique-se de que o standby tenha tudo que precisa para estar em execução (incluindo logins no nível da instância).

Portanto, somente o clustering de failover e o DBM com uma Testemunha e alta segurança fornecerão failover automático. Isso não significa necessariamente transparente.

Não há um caminho certo absoluto para fazer isso. É baseado em seus requisitos (incluindo SLAs gerais, RTOs e RPOs).

Se você está tendo problemas com o espelhamento, pode ser relacionado a E / S e / ou rede. Pode não ter nada a ver com o SQL. Então, quando você olha para uma nova arquitetura, certifique-se de avaliar todos os níveis da solução.

    
por 15.02.2011 / 19:33
2

Sugiro que você analise o uso de uma testemunha de compartilhamento de arquivos em conjunto com o clustering no Windows Server 2008 (não consigo me lembrar do topo da minha cabeça se você precisa do R2 ou não.) Eu não fiz pessoalmente isso, mas passei algum tempo olhando para ele no verão passado.

Se alguém acredita que o marketing e o Netapp possuem o software adequado, ele deve fornecer failover de site para site. Se é possível ou não lidar com esses volumes de transação é uma preocupação, mas o ônus estaria na netapps e em qualquer conexão entre eles.

Observe que "failover automático transparente" pode não ser possível sem o suporte dos próprios aplicativos do usuário. Se você já estiver fazendo o espelhamento, isso pode não ser um problema.

    
por 15.02.2011 / 17:14