Зеркальное отображение базы данных не будет таким подходом, как мне кажется, поскольку оно обеспечивает избыточность только на уровне базы данных. Таким образом, вам необходимо настроить зеркальное отображение базы данных для 50 баз данных на основе предоставленной вами информации. Скорее всего, если одна БД, где все сбои, 50, вероятно, последует, поскольку сбои обычно происходят на аппаратном уровне, а не конкретной базы данных.
Мне кажется, что вы должны использовать технологию кластеризации SQL Server. Вы можете создать активный / активный кластер для поддержки ваших требований.
Что такое активный / активный кластер?
Активный / активный кластер SQL Server означает, что SQL Server работает на обоих узлах двустороннего кластера. Каждая копия SQL Server действует независимо, и пользователи видят два разных SQL Server. В случае сбоя одного из SQL-серверов в кластере сбойный экземпляр SQL Server переключится на оставшийся сервер. Это означает, что тогда оба экземпляра SQL Server будут работать на одном физическом сервере вместо двух.
Применение этого к вашему сценарию
Затем можно разделить базы данных между двумя экземплярами сервера SQL, по одному активному экземпляру на каждом узле. Если один узел выйдет из строя, другой узел воспользуется провисанием и наоборот.
Дополнительная литература
Введение в кластеризацию SQL Server
Я подозреваю, что следующее чтение MSDN также полезно для чтения