Até que ponto os dados das outras caixas precisam ser atualizados?
O MSSQL tem uma ótima configuração de relacionamento de sincronização unidirecional. Você tem que estar licenciado para versões apropriadas do SQL Server (eu não acho que esteja incluído no mais básico), mas é excepcionalmente fácil de configurar.
O único problema é que você só pode gravar em um local, todos os outros locais precisam ser somente leitura. Para sincronização bidirecional (se você for escrever) é muito mais complexo.
Então, em suma, uma segunda caixa com uma coisa de sincronização funcionará muito bem, mas você também precisará fazer seu próprio balanceamento de carga (ou seja, ter um servidor da web lendo um servidor sql, outro servidor da web ler o outro sql servidor), como eles ainda aparecem como instâncias separadas. Caso contrário, você está em clustering que é outra chaleira de peixe.
Então, essa coisa de sincronização - o que é e como você configura? Bem, no seu SQL Management Studio (SSMS) você verá uma pasta para "Replication" no painel de navegação, com publicações e assinaturas.
Em poucas palavras, você irá:
- Publicar um banco de dados no servidor de banco de dados principal
- Inscrever-se em uma publicação nos servidores secundários, somente leitura
- Os assinantes serão sincronizados em um agendamento (isso pode ser constante para replicação quase instantânea)
Há muitos artigos, portanto, basta procurar no Google SQL Server Replication.
No que diz respeito ao hardware, nosso servidor db primário é um Dual-Quad-Core com 4GB de RAM. Nossos escravos são Dual-Core com 4gb de ram. Você pode comprar muitos servidores nesse nível. Claro, tudo depende do tipo de carga que você espera.