Для репликации Sql Server требуется фактическое имя сервера для подключения к серверу. - PullRequest
35 голосов
/ 21 ноября 2011

Когда я хочу создать новую публикацию или подписку, я получаю следующее сообщение.

"Для репликации сервера Sql требуется фактическое имя сервера для подключения к серверу. Соединения через псевдоним сервера, IP-адрес или любое другое альтернативное имя не поддерживаются. Укажите фактическое имя сервера"

Кто-нибудь знает, что мне делать?

Ответы [ 6 ]

43 голосов
/ 22 ноября 2011

Я нашел решение по следующей ссылке http://www.cryer.co.uk/brian/sqlserver/replication_requires_actual_server_name.htm

благодарен Брайану Крайеру за его полезный сайт

Цитирование по ссылке, чтобы избежать гнили ссылки:

Причина:

Эта ошибка наблюдалась на сервере, который был переименован после первоначальной установки SQL Server и где функция конфигурации SQL Server @@SERVERNAME все еще сохраняетсявернул оригинальное имя сервера.Это может быть подтверждено:

select @@SERVERNAME
go

Это должно вернуть имя сервера.Если этого не произойдет, выполните приведенную ниже процедуру для ее исправления.

Способ устранения:

Для решения проблемы необходимо обновить имя сервера.Используйте следующее:

sp_addserver 'real-server-name', LOCAL

, если это приводит к ошибке с жалобой на то, что имя уже существует, тогда используйте следующую последовательность:

sp_dropserver 'real-server-name'
go

sp_addserver 'real-server-name', LOCAL
go

Если вместо этого сообщается об ошибке «Уже существуетлокальный сервер.затем используйте следующую последовательность:

sp_dropserver old-server-name
go

sp_addserver real-server-name, LOCAL
go

Где "old-server-name" - это имя, содержащееся в теле исходной ошибки.

Остановите и перезапустите SQL Server.

31 голосов
/ 23 января 2013

Существует другое решение этой проблемы, которое не требует **sp_dropserver**, **sp_addserver** или перезапуска сервера.

Шаги:

  1. Прочтите сообщение об ошибке и запомните ИМЯ СЕРВЕРА в кавычках.
  2. Запустить Sql Server Configuration Manager на компьютере с установленной Management Studio (обычно на стороне издателя / распространителя);
  3. Разверните узел Sql Native 10.0 Configuration \ Aliases ;
  4. Создать новый псевдоним с именем SERVERNAME из 1 . Это должно быть NetBIOS имя компьютера или NetBIOS \ имя_экземпляра для именованных экземпляров.
  5. Укажите другие параметры для псевдонима (порт, сервер и протокол).
  6. Повторите 4 и 5 для 32-битного собственного клиента.
  7. Test. Запустите Management Studio на том же компьютере и попробуйте подключиться к серверу (укажите псевдоним в качестве имени сервера).

  8. (необязательно) Повторите 2 - 7 для всех клиентских компьютеров, где Management Studio будет использоваться для настройки репликации.

Вот и все!

5 голосов
/ 14 июля 2015

Краткий ответ: проверьте, подключаетесь ли вы с неправильным сетевым псевдонимом через SSMS

Например, ваш сервер может быть доступен как:

  • MyDataServer
  • MyDataServer.Company.Com

Когда создается публикация / подписка репликации, она связывается с именем, используемым для подключения к серверу в то время, если вы подключаетесь с использованием другого псевдонима или полного именион дает вам ошибку, указанную в вопросе.

Подробности: я только что наткнулся на это, ответы на вопрос об изменении @@ servername помогли мне понять проблему, но мне не пришлось этого делать.

Учтите это:

Серверная коробка sql была настроена как {my_system_name} .local.domain

В нашей сети у нас есть сетевой псевдоним, такой что {my_system_alias} позволяет намчтобы добраться до сервера и избежать необходимости вводить полное доменное имя (FQDN).

Сервер Sql был установлен, а также была настроена публикация локальной репликации при подключении с использованием имени {my_system_alias}.

Затем я подключился к серверу, используя SSMS, указав полное доменное имя. Если щелкнуть правой кнопкой мыши свойства существующей репликации -> Локальная публикация, я получу сообщение об ошибке: «Для репликации сервера Sql требуется фактическое имя сервера».

Все, что мне нужно было сделать: переподключиться к серверу в SSMS, используя псевдоним (или наоборот), и это позволит мне увидеть подробности публикации репликации.

PS: комментарий Фила в другом ответе такжеальтернативный вариант - сделать запись в файле hosts, соответствующую имени, которое вам нужно использовать для соединения.

4 голосов
/ 06 апреля 2014

Вам необходимо изменить имя сервера, например, имя компьютера.

  1. Проверьте имя сервера:

@@ servername

Удалите старое имя сервера, которое отображается в названии теста выше:

sp_dropserver 'old_name'

Добавить новый сервер имен:

sp_addserver 'new_name', 'local'

2 голосов
/ 18 мая 2017

Другим решением является использование дополнительных параметров el SQL Server Management Studio для подключения к этой базе данных.

Для этого при подключении имя сервера будет тем, которое вы получите, посоветовавшись по адресу @@ servername (или с тем, которое выдает сообщение об ошибке), а затем выберите «Опции >>»кнопка

image> button">

Затем на вкладке Дополнительные параметры подключения вы можете добавить текущее имя базы данных

enter image description here

С уважением,

0 голосов
/ 06 декабря 2017

Если вы работаете в размещенной среде, где имена серверов представляют собой странные строки, которые могут фактически использоваться другими серверами ... например, WIN-II7VS-100.Решение, которое я нашел благодаря @ZachSmith, состоит в том, чтобы отредактировать файл hosts на сервере, к которому вы хотите подключиться, и установить для него статический IP-адрес сервера SQL, к которому вы хотите подключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...