Подтвердить что ты не робот

Репликация сервера Sql требует, чтобы фактическое имя сервера выполняло соединение с сервером

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

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

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

4b9b3361

Ответ 1

Я нашел решение по следующей ссылке 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.

Ответ 2

Существует другое решение этой проблемы, которое не требует **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. Контрольная работа. Запустите Management Studio на том же компьютере и попробуйте подключиться к серверу (укажите псевдоним в качестве имени сервера).

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

Это все!

Ответ 3

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

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

  • MyDataServer
  • MyDataServer.Company.Com

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

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

Рассмотрим это:

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

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

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

Затем я подключился к серверу с помощью SSMS, указав полное доменное имя, если я щелкнул правой кнопкой мыши по свойствам этой существующей репликации → Локальная публикация. Я получаю сообщение об ошибке: "Репликация сервера Sql требует фактического имени сервера".

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

PS: комментарий Phill в другом ответе также является альтернативой, делая запись файла хоста, которая соответствует имени, которое необходимо использовать для подключения.

Ответ 4

Вам нужно изменить имя сервера, например, имя компьютера.

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

@@servername

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

sp_dropserver 'old_name'

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

sp_addserver 'new_name', 'local'

Ответ 5

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

Чтобы сделать это, при подключении имя сервера будет получено вами, консультируясь с помощью @@servername (или того, что выдается вам сообщение об ошибке), а затем выберите кнопку "Параметры → "

Выбрать параметры > > button

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

введите описание изображения здесь

Привет,

Ответ 6

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

Ответ 7

Делясь своим исправлением, после попытки ВСЕГО другого я смог найти решение этой проблемы. Я пытался настроить репликацию на SQL Server 2017 с использованием SSMS 18.2 (последняя версия на момент публикации). Когда я настраивал распространителя, все прошло нормально, но затем, когда я вошел в свойства распространителя и установил флажок "Создать агент чтения очереди", я получил бы знаменитое "Репликация SQL Server требует фактического имени сервера для подключения к сервер. Укажите фактическое имя сервера, проблема ''. (Replication.Utilities) ".

Через много дней я попробовал другую версию SSMS. Установка SSMS 17.9.1 и повторная попытка все работало правильно. Надеюсь, это поможет кому-то еще.