disponibilidade do SQL Server 2008 R2 100%

4

Existe alguma maneira de fornecer 100% de tempo de atividade no SQL Server 2008 R2?

Da minha experiência, os tempos de inatividade dos diferentes métodos de replicação são:

  • Envio de log: lotes (somente para DR)
  • Espelhando w. NLB: ~ 45 segundos
  • Clusterização: ~ 5 a 15 segundos

E todas essas soluções envolvem todas as conexões descartadas da fonte, portanto, se o tempo de inatividade for muito longo ou o gateway do aplicativo não suportar reconexão no meio da tarefa, você estará sem sorte.

A única maneira que eu posso pensar para contornar isso é abstrair o clustering um nível (por virtualização e, em seguida, permitindo VMWare FT. Yuck. Boa sorte de conseguir isso para trabalhar em um sistema de 32 núcleos de quatro saídas, de qualquer maneira.) .

Existe alguma outra maneira de fornecer 100% de tempo de atividade do SQL Server?

    
por Mark Henderson 07.02.2011 / 00:01

1 resposta

5

Não. 100% não é possível com o SQL Server. Vários noves, sim.

Quanto ao armazenamento em cluster: somente uma instalação individual do SQL Server pode "possuir" os MDFs a qualquer momento. Portanto, você tem o ciclo rollforward / rollback quando outra instância assume e as conexões são interrompidas. Isso determina quanto tempo o cluster deve fazer o failover: normalmente, ele pode ter menos de 10 segundos.

Você tem o mesmo problema com o espelhamento também: existe apenas uma instância do SQL Server que possui / controla

Você pode codificar o cliente para tentar novamente em tempos limite / deadlocks, o que atenua o tempo de failover. Nem todo mundo concorda com isso, mas achamos útil na ocasião.

Quando tivemos failover (touch wood, não por um ano ou mais), os clientes sem estado (por exemplo, serviços da web) não notaram, a menos que uma chamada falhe na hora errada. Veja minha declaração anterior.

    
por 07.02.2011 / 05:56