Entendo que para atingir algum nível de disponibilidade de uma aplicação online é possível organizar um ambiente com redundância utilizando um mecanismo IP failover e alternando entre vários servidores idênticos caso surja algum problema em algum deles.
Mas e quanto aos bancos de dados? O banco de dados deve estar em cada servidor com algum tipo de replicação de dados entre eles ou deve ficar em seu próprio servidor dedicado?
Qual abordagem geralmente é usada no SQL Server 2008 R2 ou no SQL Server 2008 R2 Express?
Você deseja colocar o SQL Server em seu próprio servidor. Você também pode precisar proteger o SQL Server contra reinicializações ou falhas de hardware procurando uma solução HA. Você pode usar Clustering (que requer armazenamento compartilhado), espelhamento de banco de dados (com ou sem testemunha) ou replicação ponto a ponto.