Я настроил зеркальное отображение базы данных между двумя серверами на расстоянии 40 миль друг от друга.
Технические характеристики сервера: SQL Server 2008, Standard Edition, 64-разрядная версия.
То же самое для главного, зеркала и свидетеля. Конфигурация с высоким уровнем безопасности с автоматическим переключением при отказе
Первоначально мы протестировали наше .net-приложение (веб-приложение) как на основном сервере, так и на зеркале, и убедились, что логин не заблокирован.
В целом все работает нормально, но иногда на зеркальном сервере я вижу неудачные попытки входа в систему:
Ошибка входа для пользователя d0main \ user. Причина: не удалось открыть явно указанную базу данных. [КЛИЕНТ: xx.xx.x.x] Ошибка сообщения: 18456, уровень серьезности: 14, состояние: 38.
Эта ошибка появляется 3-4 раза в день, но не более того.
Мой вопрос к экспертам: если принципал жив, то почему приложение пытается подключиться к зеркалу. Тайм-аут по умолчанию для веб-страницы .net составляет 30 секунд, поэтому возможно ли, что приложение пытается подключиться к основному лицу, а через 30 секунд? секунд, даже если принципал жив, он предполагает, что он мертв, и поэтому пытается открыть соединение для зеркалирования, где оно терпит неудачу.
Пожалуйста, помогите мне с этой проблемой.
Привет, я надеюсь, что этот сайт ответит на ваши вопросы, так как я не уверен, в чем именно заключается ваш вопрос.
http://msdn.microsoft.com/en-us/library/ms190913.aspx
Или напрямую: для изменения значения тайм-аута (только в режиме повышенной безопасности)
* Use the ALTER DATABASE <database> SET PARTNER TIMEOUT <integer> statement.
Чтобы просмотреть текущее значение тайм-аута
* Query mirroring_connection_timeout in sys.database_mirroring.
Также проверьте эту статью в разделе «Перенаправление на стороне клиента»: http://technet.microsoft.com/en-us/library/cc917680.aspx
Партнер по отработке отказа в строке подключения используется в качестве альтернативного имени сервера в случае сбоя подключения к начальному основному серверу. Если соединение с начальным основным сервером установлено успешно, то имя партнера по отработке отказа не будет использоваться, но драйвер сохранит имя партнера по отработке отказа, которое он получает от основного сервера в кэше на стороне клиента.
Вы уверены, что ошибка исходит из приложения? Указывает ли IP-адрес на сервер приложений? Или это может быть какое-то другое приложение, например SSMS, которое пытается подключиться именно к зеркалу?
Если нет, убедитесь, что основной сервер не перегружен, если у него время высокой загрузки ЦП, он может не ответить на попытку подключения, я бы запустил Perfmon, чтобы посмотреть, как он выглядит.
Также проверьте журналы ошибок SQL и событий сервера на основном сервере на предмет любых необычных ошибок, которые совпадают со временем входа в систему на зеркале.