У меня есть три сервера Windows (data1, data2 и datawitness), которые не являются частью какого-либо домена и не используют AD. Я пытаюсь настроить зеркалирование в соответствии с инструкциями на странице http://alan328.com/SQL2005_Database_Mirroring_Tutorial.aspx а>. У меня был успех вплоть до последнего набора инструкций, в которых я говорю data1 использовать datawitness в качестве сервера-свидетеля. Этот шаг завершается ошибкой со следующим сообщением:
изменить базу данных MyDatabase set witness = 'TCP: //datawitness.somedomain.com: 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 Express 2005. Все они используют экземпляр по умолчанию (т.е. ни один из них не является именованным экземпляром)