We've recently changed our mirror setup to include a witness so we support automatic failovers, yesterday in our datacenter they had some planned maintenance to some of the network supplies (i believe they changed some Routers and things).
Sadly, this caused some instability in our network which is nothing i can change anything about now (except write an angry email!). What really troubles me is the following scenario.
We have about 10 databases running on a Principal we call the 90, then the 91 is our mirror and the 92 runs as our witness.
Yesterday @ 09:35 the Witness and Mirror claimed to have lost connection to the principal and promoted the Mirror to the Principal. The Principal (on the 90) however, never claims to have lost connect to the witness and does it's thing (remaining up). Then at around 09:54 the 90 claims to have lost connection to the Mirror (which makes sense, since @ 09:25 this became the principal... it just realises this 30 minutes to late?!).
At this point the we have two quarums.. The 90 can see the 92 and remain principal, and the 91 which has been promoted can also see the 92...
Sadly at this point the principal (90) started throwing some horrible deadlocks and refused to respond to any commands, The clients which have a connectionstring setup with a failover partner how ever can still ping/connect to the 90 meaning non of them failover to the 91. In the end we restarted the SQL Server isntance on the 90 which made all the databases failover correctly.
I personally have no idea how this situation occurred, if there is anything wrong with our setup the fact we somehow had two principals really bothers me, especially since the original principal was up and running for around 30 minutes leaving us with a gap of 30 minutes when we managed to turn it into a mirror.
Any information on this would be much appreciated since at the moment we are pretty shellshocked by all this.