No conozco SQL Server 2005, pero para el uso general de SQL, siempre preferiría la replicación. Debe separar las lecturas/escrituras en su aplicación (para MySQL hay MySQL Proxy que puede hacer esto de forma proxy por usted), pero obtenga un sistema escalable (lee en esclavo(s), escribe en maestro)
Duplicación significa replicación maestro-maestro que conduce a problemas de simultaneidad/transacción. Incluso en escenarios de maestro-maestro debes NUNCA enviar consultas de escritura a diferentes servidores. Dependiendo del tamaño de su proyecto, los siguientes pasos serían agregar más esclavos y luego agregar otro maestro + sus esclavos para redundancia.
master --- master
| |
slave slave
| |
slave slave
| |
slave slave
Incluso entonces, solo enviaría consultas de escritura a un maestro, pero en caso de que un maestro falle, podría promover automáticamente el segundo maestro a su nuevo objetivo de consulta de escritura.