webentwicklung-frage-antwort-db.com.de

Für die SQL Server-Replikation ist der tatsächliche Servername erforderlich, um eine Verbindung zum Server herzustellen

Ich erhalte die folgende Meldung, wenn ich eine neue Publikation oder ein neues Abonnement erstellen möchte.

"Für die SQL Server-Replikation ist der tatsächliche Servername erforderlich, um eine Verbindung zum Server herzustellen. Verbindungen über einen Serveralias, eine IP-Adresse oder einen anderen alternativen Namen werden nicht unterstützt. Geben Sie den tatsächlichen Servernamen an."

Weiß jemand was soll ich tun?

35
Vahid Ghadiri

Ich habe die Lösung unter folgendem Link gefunden http://www.cryer.co.uk/brian/sqlserver/replication_requires_actual_server_name.htm

dank an Brian Cryer für seine nützliche Seite

Aus dem Link zitiert, um link rot zu vermeiden: 

Ursache:

Dieser Fehler wurde auf einem Server festgestellt, der nach der ursprünglichen Installation von SQL Server umbenannt wurde und bei dem die SQL Server-Konfigurationsfunktion @@SERVERNAME noch den ursprünglichen Namen des Servers zurückgegeben hat. Dies kann bestätigt werden durch:

select @@SERVERNAME
go

Dies sollte den Namen des Servers zurückgeben. Wenn dies nicht der Fall ist, führen Sie die folgenden Schritte aus, um den Fehler zu beheben.

Abhilfe:

Um das Problem zu beheben, muss der Servername aktualisiert werden. Verwenden Sie folgendes:

sp_addserver 'real-server-name', LOCAL

wenn dies zu einem Fehler führt, der sich darüber beklagt, dass der Name bereits vorhanden ist, verwenden Sie die folgende Reihenfolge:

sp_dropserver 'real-server-name'
go

sp_addserver 'real-server-name', LOCAL
go

Wenn stattdessen der Fehler gemeldet wird, ist bereits ein lokaler Server vorhanden. Verwenden Sie dann die folgende Reihenfolge:

sp_dropserver old-server-name
go

sp_addserver real-server-name, LOCAL
go

Dabei ist der "alte-Server-Name" der Name, der im Hauptteil des ursprünglichen Fehlers enthalten ist.

Stoppen Sie SQL Server und starten Sie ihn erneut.

41
Vahid Ghadiri

Es gibt eine andere Lösung für dieses Problem, bei der kein **sp_dropserver**, **sp_addserver** oder Server-Neustart erforderlich ist.

Schritte:

  1. Lesen Sie die Fehlermeldung und merken Sie sich den SERVERNAME, der in Anführungszeichen steht.
  2. Führen Sie den SQL Server Configuration Manager auf dem Computer aus, auf dem Management Studio installiert ist (in der Regel die Seite des Verlegers/Verteilers).
  3. Erweitern Sie den Knoten Sql Native 10.0 Configuration\Aliases .
  4. Erstellen Sie einen neuen Alias ​​mit dem Namen SERVERNAME aus 1 . Es sollte ein NetBIOS Computername oder NetBIOS\Instanzname für benannte Instanzen sein.
  5. Legen Sie die anderen Optionen für den Alias ​​fest (Port, Server und Protokoll).
  6. Wiederholen Sie 4 und 5 für nativen 32-Bit-Client.
  7. Prüfung. Führen Sie Management Studio auf demselben Computer aus, und versuchen Sie, eine Verbindung zum Server herzustellen (geben Sie den Alias ​​als Servernamen an).

  8. (Optional) Wiederholen Sie 2 - 7 für alle Client-Computer, auf denen Management Studio für die Replikation verwendet wird.

Das ist alles!

31
eLVik

Kurze Antwort: Prüfen Sie, ob Sie über SSMS eine Verbindung mit dem falschen Netzwerkalias herstellen

Beispielsweise kann auf Ihren Server als beide zugegriffen werden:

  • MyDataServer
  • MyDataServer.Company.Com

Wenn eine Replikationsveröffentlichung/ein Abonnement erstellt wird, wird sie mit dem Namen verbunden, der zu dem Zeitpunkt verwendet wird, um eine Verbindung zum Server herzustellen. Wenn Sie eine Verbindung mit einem anderen Aliasnamen oder einem vollständig qualifizierten Namen herstellen, erhalten Sie den in der Frage angegebenen Fehler.

Details: Ich bin nur darauf gestoßen, die Antworten auf das Ändern des @@ Servernamens haben mir geholfen, das Problem zu verstehen, aber ich musste das nicht tun. 

Bedenken Sie:

Die SQL Server-Box wurde als {Mein_Systemname} .Local.Domäne eingerichtet

In unserem Netzwerk haben wir einen Netzwerk-Alias, der uns ermöglicht, mit {my_system_alias} den Server zu erreichen und den vollständig qualifizierten Domänennamen (FQDN) nicht eingeben zu müssen.

SQL Server wurde installiert und eine lokale Replikationspublikation wurde eingerichtet, während die Verbindung mit dem Namen {my_system_alias} hergestellt wurde.

Ich habe dann unter Verwendung des SSMS eine Verbindung mit dem Server hergestellt und den FQDN angegeben. Wenn ich mit der rechten Maustaste auf die Eigenschaften dieser vorhandenen Replikation klicke -> Lokale Veröffentlichung, erhalte ich die Fehlermeldung: "SQL Server-Replikation erfordert den tatsächlichen Servernamen".

Alles, was ich tun musste: Verbindung mit dem Server in SSMS unter Verwendung des Alias ​​(oder umgekehrt) herstellen, und ich kann die Details zur Replikationsveröffentlichung sehen.

PS: Phill's Kommentar in einer anderen Antwort ist auch eine Alternative, indem ein Eintrag für eine Hosts-Datei erstellt wird, der mit dem Namen übereinstimmt, den Sie für die Verbindung verwenden müssen.

5
Chris Amelinckx

Sie müssen den Servernamen wie einen Computernamen ändern.

  1. Überprüfen Sie den Servernamen: 

@@Servername

  1. Löschen Sie den alten Namen des Servers, der Ihnen im obigen Testnamen angezeigt wird:

sp_dropserver 'alter_name'

  1. Einen neuen Nameserver hinzufügen: 

sp_addserver 'neuer_name', 'lokal'

3
galgil

Eine andere Lösung ist die Verwendung der zusätzlichen Parameter von SQL Server Management Studio, um eine Verbindung zu dieser Datenbank herzustellen. 

Wenn Sie eine Verbindung herstellen, wird der Servername der Name, den Sie erhalten, wenn Sie sich über @@ Servername (oder den Namen der Fehlermeldung) informieren und dann die Schaltfläche "Optionen >>" wählen

 Select Options >> button

Dann können Sie auf der Registerkarte Zusätzliche Verbindungsparameter den aktuellen Namen der Datenbank hinzufügen

 enter image description here

Grüße,

1
an3sarmiento

Wenn Sie in einer gehosteten Umgebung arbeiten, in der die Servernamen seltsame Zeichenfolgen sind, die tatsächlich mit anderen Servern gemeinsam genutzt werden können, z. WIN-II7VS-100. Die Lösung, die ich dank @ZachSmith gefunden habe, besteht darin, die hosts-Datei auf dem Server zu bearbeiten, von dem aus Sie eine Verbindung herstellen möchten, und die statische IP-Adresse des SQL-Servers festzulegen, zu dem Sie eine Verbindung herstellen möchten.

0
John K.

Nachdem ich versucht habe, ALLES zu lösen, konnte ich meinen Fix freigeben. Ich habe versucht, die Replikation unter SQL Server 2017 mit SSMS 18.2 (der neuesten Version zum Zeitpunkt dieses Beitrags) einzurichten. Als ich den Verteiler einrichtete, ging alles in Ordnung, aber als ich dann die Verteilereigenschaften betrat und das Kontrollkästchen "Create Queue Reader Agent" ankreuzte, erhielt ich die berühmte Meldung "Für die SQL Server-Replikation ist der tatsächliche Servername erforderlich, um eine Verbindung zum herzustellen Geben Sie den tatsächlichen Servernamen ". (Replication.Utilities)" an.

Nach vielen Tagen habe ich eine andere Version von SSMS ausprobiert. Die Installation von SSMS 17.9.1 und der erneute Versuch, alles zu tun, funktionierten ordnungsgemäß. Hoffentlich hilft das jemand anderem.

0
Ben