web-dev-qa-db-fra.com

Comment résoudre l'erreur: 1418 sur un serveur SQL lors de la mise en miroir 

J'essaye de refléter une base de données dans le serveur de SQL. J'ai créé une base de données, en ai sauvegardé et restauré sur un autre serveur. Mais après avoir effectué toutes les opérations et cliqué sur le démarrage de la mise en miroir, le message d'erreur suivant s'affiche. Je mets "NON" à l'option de serveur témoinenter image description here.

J'ai suivi les étapes de mise en miroir dans ce link Voici, créez un utilisateur sur les serveurs principal et miroir avec les mêmes informations d'identification dans STEP 3. Est-il nécessaire de créer le même utilisateur sur les deux serveurs? ou toute autre solution existe-t-il?

14
Searcher

J'ai aussi fait face au même problème. vous devez vérifier les éléments suivants une fois.

  1. Allez à services.msc et vérifiez que le serveur SQL s'exécute sous quel compte. Assurez-vous que les services d'agent de serveur SQL et de serveur SQL doivent être exécutés avec les mêmes informations d'identification.

  2. dans le serveur de base de données miroir, vous devez suivre la même étape que l’étape 1. Indiquez les mêmes informations d’identification que pour le serveur principal. Si cet utilisateur n'est pas présent, créez-en un sur les deux serveurs avec les mêmes informations d'identification.

  3. Maintenant le serveur principal et le serveur SQL ajoutent le nouveau login sous Sécurité -> Login . Donnez les rôles de serveur en tant que Sysadmin et public. Ajoutez également le même utilisateur sur le serveur miroir. 

  4. Maintenant, faites le miroir dans la base de données principale. Vous n'avez pas eu d'erreur ici. 

21
Mihir

Même problème, erreur 1418. Est-ce que tout suggéré ici: link

Avec le recul, c'était évident. Lorsque vous terminez dans MIRRORING> CONFIGURE SECURITY WIZARD, vous obtenez une page expliquant les résultats. En regardant les nœuds SQL1 et SQL2, cette ligne était la clé:

On the principal server instance, SQL1
Listener Port: 5022
Encryption: **Yes**


On the mirror server instance, SQL2
Listener Port: 5022
Encryption: **No**

Solution. Après avoir terminé l’assistant sur tous les nœuds SQL, exécutez:

drop endpoint Mirroring
go


CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL)
GO

Appuyez sur Démarrer en miroir, le problème est résolu.

J'espère que ça aide quelqu'un Scott

2
scott_lotus

Après avoir épuisé toutes les options mentionnées ci-dessus, j'ai eu une variation de l'environnement de mise en miroir. Nous avions un serveur SQL 2008 contribuant à 2014 Server dans la configuration Principal-Mirror. Le serveur SQL 2014 était également utilisé dans la configuration AlwaysOn pour la HA de certains autres bases de données. Les points de terminaison sont maintenant nommés différemment sur sql 2008 et sql 2014. 

Après avoir obtenu l'erreur mentionnée ci-dessus, j'ai constaté que le chiffrement pour 2008 est RC4 et que pour 2014, c'est AES. En conséquence, la négociation avec le point de terminaison SQL2014 a échoué. J'ai modifié le cryptage pour qu'il corresponde à celui de SQL 2008 en utilisant la commande ci-dessous et l'alto!

ALTER ENDPOINT [Hadr_endpoint]
    FOR DATA_MIRRORING ( ENCRYPTION  = REQUIRED ALGORITHM RC4 )
2
JackinTBox

Il est également possible que vous ne laissiez pas la copie destinée à la mise en miroir dans un état de restauration, qu'elle doit être laissée pour pouvoir l'activer.

En règle générale, la procédure de mise en miroir de SQL Server est la suivante:

1) Sauvegardez la base de données d'origine et copiez-la sur le serveur destiné à la mise en miroir.

2) Sauvegardez le journal des transactions et copiez-le sur le serveur destiné à la mise en miroir.

3) Choisissez de restaurer la base de données à partir de la MMC, localisez la sauvegarde de la base de données et restaurez-la avec les options définies pour rester dans un état inopérant, sans annulation des transactions.

4) Choisissez de restaurer et de choisir les fichiers, puis sélectionnez les fichiers journaux et restaurez la sauvegarde des fichiers journaux avec également l'option non rolloback et non-fonctionnement. Il s’agit du deuxième bouton radio situé sous la page des options de SQL Server 2008.

5) accédez au serveur de copie de base de données d'origine et activez la mise en miroir. Vous devez utiliser un compte disposant des droits sysadmin sur les deux serveurs pour que les conversations en miroir puissent démarrer.

1
Bryce Young

En ce qui me concerne, ce problème a été corrigé et résolu en supprimant et en recréant les points de terminaison en miroir (SSMS -> Objets serveur -> Points de terminaison -> Mise en miroir de bases de données).

0
Mark Sowul

J'avais déjà rencontré ce problème auparavant, toutes les étapes de validation ont abouti ... Utilisez un nouveau terminal enfin, cela fonctionne ... La cause première est que 5022 peut bloquer une autre session.

0
Mik Wang

Sur SQL Server 2016, la solution consiste à avoir votre [compte de domaine] en tant qu'administrateur système sur le serveur principal et le serveur miroir. Puis créez un nouveau compte à partir de ce qui suit

Serveur principal

use [master]
GO
CREATE LOGIN [domain\mirrorservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\mirrorservername$]
GO

Serveur miroir

use [master]
GO
CREATE LOGIN [domain\principalservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\principalservername$]
GO

Vous devez créer ces comptes et accorder l’autorisation CONNECT car ces comptes sont ceux utilisés lors de la négociation entre le serveur principal et le serveur miroir.

Pour plus de détails sur l’erreur, consultez vos journaux d’erreur SQL.

J'espère que ce post aide quelqu'un.

0
Romyr Reyes

Mon erreur 1418 a été résolue en utilisant la même lettre de lecteur sur les deux serveurs ...

Bien que MS suggère que vous puissiez utiliser différentes lettres, j'ai décidé d'utiliser la même lettre de lecteurs ...

De MS: 

Nous vous recommandons également, si possible, que le chemin du fichier (y compris La lettre du lecteur) de la base de données miroir soit identique au chemin de la base de données principale. Si les chemins de fichiers doivent différer, par exemple, si la base de données principale est sur le lecteur 'F:' mais le système miroir n'a pas de F: lecteur, vous devez inclure l’option MOVE dans l’instruction RESTORE.

0
Cozzaro Nero

Drop endpoint Mirroring

Aller

CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL)
GO

Appuyez sur Démarrer en miroir, le problème est résolu.

J'espère que ça aide quelqu'un Scott

Cela m’a vraiment aidé grâce à scott

Tnx Ritz

0
Ritz

Dans le cas où rien de ce qui précède ne fonctionnait, voici la cause de mon problème . Exécutez la requête suivante sur les deux serveurs et examinez attentivement 

SELECT @@Version

J'ai eu des mises à jour sur mon serveur principal qui n'étaient pas installées sur mon serveur miroir. 

En outre, vous pouvez voir des informations supplémentaires dans le journal SQL Server pour expliquer les raisons pour lesquelles la mise en miroir ne fonctionne pas. C'est ainsi que j'ai réalisé que j'avais une version différente sur les deux serveurs.

J'ai eu le même problème. J'essayais de configurer la mise en miroir sous Windows 2008 - R2, dans une configuration de domaine. Comme suggéré ci-dessus par l'un des experts, j'ai vérifié les comptes de connexion SQL Server pour SQLSERVER et SQLSERVERAGENT et ai utilisé le même compte de domaine pour les services SQL Server sur les deux ordinateurs. J'ai pu configurer la mise en miroir.

Merci pour l'aide!

0
Mohan