Nie znam SQL Server 2005, ale do ogólnego użycia SQL zawsze wolałbym Replikację. Musisz oddzielić odczyt/zapis w swojej aplikacji (w przypadku MySQL istnieje MySQL Proxy, który może to zrobić w sposób proxy), ale zyskujesz skalowalny system.(odczyt do urządzeń podrzędnych, zapis do urządzenia nadrzędnego)
Dublowanie oznacza replikację master-master, która prowadzi do problemów ze współbieżnością/transakcjami. Nawet w scenariuszach mistrz-mistrz nie powinieneś NIGDY wysyłaj zapytania o zapis do różnych serwerów. W zależności od rozmiaru projektu następnym krokiem będzie dodanie większej liczby urządzeń podrzędnych, a następnie dodanie kolejnego urządzenia nadrzędnego + urządzeń podrzędnych w celu zapewnienia nadmiarowości.
master --- master
| |
slave slave
| |
slave slave
| |
slave slave
Nawet wtedy wysyłałbyś zapytania o zapis tylko do jednego wzorca, ale w przypadku awarii głównego wzorca można by automatycznie promować drugiego wzorca do nowego celu zapytania dotyczącego zapisu.