У меня есть специфический сценарий, когда моя зеркальная база данных не может быть доступна на одном сервере, но может быть доступна на другом. Я попытался указать конкретный логин SQL, чтобы заставить его работать, но когда база данных выходит из строя на другом сервере, SQL больше не может использовать эти учетные данные. Я также попытался использовать встроенную безопасность для использования учетной записи администратора домена, которая, как я полагал, будет согласована между обоими серверами. Не повезло. Итак, что я могу сделать, чтобы решить эту проблему, и есть ли способ заставить один экземпляр сервера получать учетные записи безопасности от другого. Оба сервера находятся в доверенном домене.
Зеркальное отображение базы данных SQL Server - это механизм высокой доступности на уровне базы данных. Все, что влияет на базы данных, кроме той, которую вы зеркалируете (например, учетные записи, хранящиеся в Master), необходимо вручную передавать на зеркало после переключения при отказе или (что более идеально) на регулярной основе во время планового обслуживания.
Если логины копируются, а проблемы по-прежнему возникают, вероятно, обнаружено несоответствие SID. Посмотрите здесь для получения дополнительной информации и разрешения.
Во время любого зеркалирования доступен только принципал, зеркало отключено.
В режиме высокой доступности также есть свидетель, который необходим для автоматического переключения при отказе. Должно быть 2 узла, которые согласны с тем, кто является мастером, чтобы оба узла не стали мастерами.
Вы можете использовать строку подключения, подобную этой, для автоматического подключения к активному из двух серверов:
Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial
Catalog=myDataBase;Integrated Security=True;