Jag känner inte till SQL Server 2005, men för allmän SQL-användning skulle jag alltid föredra replikering. Du måste separera läser/skriver i din applikation (för MySQL finns MySQL Proxy som kan göra detta på ett proxysätt åt dig), men skaffa ett skalbart system.(läser till slav(ar), skriver till master)
Spegling innebär master-master replikering som leder till samtidighets-/transaktionsproblem. Även i master-master-scenarier bör du ALDRIG skicka skrivfrågor till olika servrar. Beroende på ditt projekts storlek skulle nästa steg vara att lägga till fler slavar och sedan lägga till en annan master + dess slavar för redundans.
master --- master
| |
slave slave
| |
slave slave
| |
slave slave
Även då skulle du bara skicka skrivförfrågningar till en master, men i händelse av en misslyckad master kan du automatiskt marknadsföra den andra mastern till ditt nya write-query-mål.