У меня есть программа в Excel, которая подключается к нескольким серверам sql, используя имя сервера и экземпляр. Мой вопрос: что произойдет, если в одной сети есть два сервера (машины) с одинаковым именем сервера? Это возможно?
Как этого избежать?
Разве лучше подключаться по IP, чем по имени сервера?
Когда два компьютера с Windows находятся в одном домене, они просто не могут иметь одинаковое имя хоста. Это не разрешено.
Если вместо этого они находятся в рабочей группе или в разных доменах, вы можете назвать их одним и тем же именем, но тогда они начнут выдавать ошибки, как только обнаружат друг друга; однако, если они находятся в разных IP-подсетях, у них нет возможности обнаружить это, поэтому они с радостью продолжат использовать то же имя хоста.
Теперь обо всех других компьютерах, пытающихся связаться с ними. Сопоставление имени хоста с IP-адресом выполняется DNS; таким образом, даже если у вас есть два сервера с одинаковым именем, тот, к которому вы фактически подключаетесь, будет зарегистрирован в DNS, а другой просто никогда не будет использоваться. Если у вас нет повторяющихся записей DNS; в этом случае у вас будет 50% шанс подключиться к каждому серверу.
В очень особых случаях у вас есть несколько серверов, которые отвечают на одно и то же имя. Однако у каждого сервера по-прежнему есть собственное имя, которое нельзя использовать совместно.
Если вы попытаетесь установить для обоих одно и то же имя, то либо вы случайным образом подключитесь к одному серверу, либо к другому, либо один из них просто «заберет» имя для себя, а другой не удастся.
Обычно подключение через IP - это плохо, потому что IP-адреса меняются чаще, чем имена хостов. В этом суть имени хоста: предоставить возможность найти IP-адрес по значимому имени, чтобы IP-адрес мог изменяться в соответствии с потребностями сети.