Проблема с настройкой свидетеля в схеме зеркального отображения SQL Server w / error
У меня есть три сервера Windows (data1, data2 и datawitness), которые не являются частью какого-либо домена и не используют AD. Я пытаюсь настроить зеркальное отображение на основе инструкций по адресу http://alan328.com/SQL2005_Database_Mirroring_Tutorial.aspx . я добился успеха вплоть до последнего набора инструкций, где я говорю data1 использовать datawitness в качестве сервера-свидетеля. Этот шаг завершается со следующим сообщением:
Alter database mydatabase set witness = 'Протокол TCP://datawitness.somedomain.ком:7024'
Команду ALTER DATABASE не удалось отправить удаленному экземпляру сервера "TCP: / / datawitness. somedomain. com: 7024". конфигурация зеркального отображения базы данных не была изменена. Убедитесь, что сервер подключен, и повторите попытку.
Я протестировал оба порта 7024, а также 1433 с помощью telnet, и оба сервера действительно могут соединяться друг с другом. Я также могу добавить подключение к серверу-свидетелю из диспетчера SQL Server на основном сервере. сервер. Я использовал Configuration Manager на обоих серверах для включения именованных каналов и проверки того, что IP-трафик включен и использует порт 1433 по умолчанию.
Что еще это может быть? Нужны ли мне какие-либо дополнительные открытые порты, чтобы это работало? (Правила брандмауэра очень ограничительны, но я знаю, что трафик на ранее упомянутых портах явно разрешен)
Предостережения, которые стоит упомянуть здесь:
-
Каждый сервер находится в другой сети сегмент
-
Серверы не используют AD и не являются частью домена
-
Для этих серверов не настроен DNS-сервер, поэтому я использую файл HOSTS для сопоставления доменных имен с IP-адресами (проверено с помощью telnet, ping и т. д.).
-
Правила брандмауэра очень ограничительны, и у меня нет прямого доступа, чтобы настроить их, хотя я могу вызвать изменение, если это необходимо
-
Data1 и Data2 используют SQL Server 2008, Datawitness использует SQL Экспресс 2005. Все они используют экземпляр по умолчанию (т. е. ни один из них не является именованным экземпляром)
2 ответа:
После того, как я прочесал блоги и статьи KB и сообщения на форумах, переустановил и перенастроил, перезагрузил и профилировал и т. д., и т. д., Я наконец нашел ключ к головоломке-запись в журнале событий на сервере-свидетеле сообщила об этой ошибке:
Database mirroring connection error 2 'DNS lookup failed with error: '11001(No such host is known.)'.' for 'TCP://ABC-WEB01:7024'.
Я использовал файл hosts для отображения фиктивных доменных имен для всех трех серверов в виде datax.mydomain.com однако теперь очевидно, что свидетель пытался связаться обратно, используя имя основного сервера, который У меня не было записи хостов для. Простое добавление еще одной записи для ABC-WEB01, указывающей на основной веб-сервер, сделало трюк. Нет ошибок, и зеркальное отображение наконец завершено.
Надеюсь, это сэкономит кому-то еще миллиард часов.
Я хотел бы добавить еще один ответ на этот конкретный вопрос, поскольку мой комментарий к ответу Криса показывает, что мое зеркало было отключено (для свидетеля), поэтому вам нужно перезагрузить (или в моем случае я просто восстановил службу) сервер-свидетель.
Как только я это сделал, зеркало показало связь свидетеля как связанную!
См.: http://www.bigresource.com/Tracker/Track-ms_sql-cBsxsUSH/