We have TFS Version 15.105.27412.0 installed on a server (Server A) and have it configured to point at our database server (Server B).
We have the two TFS databases (tfs_defaultcollection
and tfs_configuration
) on ServerB
and they are mirrored with ServerC
, however the connection string in the configuration manager for TFS is not "mirroring aware" - see screenshot below from TFS Administration Console
Furthermore, if I interrogate the TFS configuration database as follows
SELECT * FROM Tfs_configuration.dbo.tbl_Database
This confirms the connection strings for both databases do not have failover partners specified.
We had a planned failover this morning from ServerB
to ServerC
which included both of the TFS
databases and much to everyone's surprise, TFS
continued to function with the databases failover
and running on ServerC
.
I stopped the SQL Server service on ServerB
and ran an ExtendedEvents
session on ServerC
(looking for queries that accessed the TFS
databases) and can confirm that the TFS
application was indeed querying ServerC
.
How did this happen? The TFS installation has no idea that ServerC
exists, is something happening at the SQL Server level?