web-dev-qa-db-fra.com

La réplication SQL Server nécessite le nom du serveur lui-même pour établir une connexion au serveur

Je reçois le message suivant lorsque je souhaite créer une nouvelle publication ou un nouvel abonnement.

"La réplication SQL Server nécessite le nom du serveur lui-même pour établir une connexion au serveur. Les connexions via un alias de serveur, une adresse IP ou tout autre nom alternatif ne sont pas prises en charge. Spécifiez le nom du serveur"

Est-ce que quelqu'un sait ce que je devrais faire?

35
Vahid Ghadiri

J'ai trouvé la solution dans le lien suivant http://www.cryer.co.uk/brian/sqlserver/replication_requires_actual_server_name.htm

reconnaissant à Brian Cryer pour son site utile

Citation du lien pour éviter la pourriture du lien: 

Cause:

Cette erreur a été observée sur un serveur renommé après l'installation d'origine de SQL Server et pour lequel la fonction de configuration SQL Server @@SERVERNAME a tout de même renvoyé le nom d'origine du serveur. Ceci peut être confirmé par:

select @@SERVERNAME
go

Cela devrait renvoyer le nom du serveur. Si ce n'est pas le cas, suivez la procédure ci-dessous pour le corriger.

Remède:

Pour résoudre le problème, le nom du serveur doit être mis à jour. Utilisez le suivant:

sp_addserver 'real-server-name', LOCAL

si cela vous donne une erreur en vous plaignant que le nom existe déjà, utilisez la séquence suivante:

sp_dropserver 'real-server-name'
go

sp_addserver 'real-server-name', LOCAL
go

Si au lieu de cela, l'erreur signalée est "Il existe déjà un serveur local". puis utilisez la séquence suivante:

sp_dropserver old-server-name
go

sp_addserver real-server-name, LOCAL
go

Où "ancien-nom-serveur" est le nom contenu dans le corps de l'erreur d'origine.

Arrêtez et redémarrez SQL Server.

41
Vahid Ghadiri

Il existe une autre solution à ce problème, qui ne nécessite pas **sp_dropserver**, **sp_addserver** ni le redémarrage du serveur.

Pas:

  1. Lisez le message d'erreur et rappelez-vous le SERVERNAME qui est entre guillemets.
  2. Exécutez Sql Server Configuration Manager sur la machine sur laquelle Management Studio est installé (généralement côté éditeur/distributeur);
  3. Développez le Sql Native 10.0 Configuration\Aliases node;
  4. Créez un nouvel alias avec le nom SERVERNAME à partir de 1 . Ce doit être un NetBIOS nom_ordinateur ou NetBIOS\nom_instance pour les instances nommées.
  5. Spécifiez les autres options pour l'alias (port, serveur et protocole).
  6. Répétez 4 et 5 pour le client natif 32 bits.
  7. Tester. Exécutez Management Studio sur le même ordinateur et essayez de vous connecter au serveur (spécifiez un alias en tant que nom du serveur).

  8. (Facultatif) Répétez 2 - 7 pour tous les ordinateurs clients sur lesquels Management Studio sera utilisé pour la configuration de la réplication.

C'est tout!

31
eLVik

Réponse courte: vérifiez si vous vous connectez avec le mauvais alias de réseau via SSMS

Par exemple, votre serveur peut être accessible en tant que:

  • MyDataServer
  • MyDataServer.Company.Com

Lorsqu'une publication/un abonnement de réplication est créé, il est associé au nom utilisé pour se connecter au serveur à ce moment-là. Si vous vous connectez à l'aide d'un alias ou d'un nom complet différent, vous obtenez l'erreur indiquée dans la question.

Détails: Je viens juste de voir ceci, les réponses à propos de la modification du @ nom_serveur m'ont aidé à comprendre le problème, mais je n'avais pas à le faire. 

Considère ceci:

Le serveur SQL a été configuré comme {my_system_name} .local.domain

Dans notre réseau, nous avons un alias réseau tel que {my_system_alias} nous permet d’atteindre le serveur et d’éviter de saisir le nom de domaine complet (FQDN).

SQL Server a été installé et une publication de réplication locale a été configurée lors de la connexion sous le nom {my_system_alias}.

Je me suis ensuite connecté au serveur en utilisant SSMS en spécifiant le nom de domaine complet. Si je clique avec le bouton droit de la souris sur les propriétés de cette réplication existante -> Publication locale, le message d'erreur suivant s'affiche: "La réplication SQL Server requiert le nom actuel du serveur".

Tout ce que je devais faire: me reconnecter au serveur dans SSMS en utilisant l’alias (ou l’inverse) et cela me permettrait de voir les détails de la publication de réplication.

PS: le commentaire de Phill dans une autre réponse est également une alternative, en créant une entrée de fichier hosts qui correspond au nom que vous devez utiliser pour la connexion.

5
Chris Amelinckx

Vous devez changer le nom du serveur, comme un nom d'ordinateur.

  1. Vérifiez le nom du serveur: 

@@nom du serveur

  1. Supprimez l'ancien nom du serveur qui vous apparaît dans le nom du test ci-dessus:

sp_dropserver 'ancien_nom'

  1. Ajouter un nouveau serveur de noms: 

sp_addserver 'nouveau_nom', 'local'

3
galgil

Une solution différente consiste à utiliser les paramètres supplémentaires el SQL Server Management Studio pour se connecter à cette base de données. 

Pour ce faire, lors de la connexion, le nom du serveur sera celui que vous obtiendrez en consultant via @@ nomserveur (ou celui que le message d'erreur vous demandera), puis en sélectionnant le bouton "Options >>"

 Select Options >> button

Ensuite, dans l’onglet Paramètres de connexion supplémentaires, vous pouvez ajouter le nom actuel de la base de données.

 enter image description here

Cordialement,

1
an3sarmiento

Si vous travaillez dans un environnement hébergé où les noms de serveur sont des chaînes étranges qui peuvent en fait être partagées avec d'autres serveurs ... par exemple. WIN-II7VS-100. La solution que j'ai trouvée grâce à @ZachSmith consiste à modifier le fichier hosts sur le serveur à partir duquel vous souhaitez vous connecter et à le définir sur l'adresse IP statique du serveur SQL auquel vous souhaitez vous connecter.

0
John K.