Mirroring: impossibile raggiungere l'indirizzo di rete del server


12

Ho installato SQL Server 2008 R2. Contiene tre istanze.

  1. Predefinito (MSSQLServer)
  2. Prima istanza
  3. Seconda istanza

Tutti questi sono Accesso come servizio di rete.

L'istanza predefinita è il server principale La prima istanza è Mirror La seconda istanza è il server Witness

Inizialmente ho eseguito il backup completo e il backup del registro transazionale del mio database principale. Ripristinato alla prima istanza mantenendo lo stesso nome database e lo stato di recupero è No-Recovery

Alla fine, ho avviato il mirroring e sto ricevendo due messaggi di errore mostrati di seguito.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Risposte:


12

Prova alcuni test di connettività di base.

  1. Verificare che 5022, 5023 e 5024 siano in ascolto.
  2. Verificare che il nome del server che si sta utilizzando sia corretto.

Dalla riga di comando:

netstat -an

inserisci qui la descrizione dell'immagine

Sul mio server, puoi vedere che 5022 è in ascolto.

Quindi assicurati di poterti connettere a quelle porte tramite telnet

telnet fully-qualified-server-name 5022

Come menzionato nella sezione Note della GUI delle proprietà di mirroring, appena sotto il campo testimone, i nomi dei server devono essere indirizzi tcp completi.

inserisci qui la descrizione dell'immagine

Dovresti vedere solo una schermata nera. In questo esempio ho scelto un nome che causerebbe un errore di connessione. Se vedi "Impossibile aprire la connessione", i server definiti come mirror, principal e testimone non sono raggiungibili o non stai usando il nome giusto.

Il client Telnet può essere aggiunto in Funzionalità in Windows 2008.

In Windows 2008, quando fai clic con il tasto destro su Computer, puoi vedere il nome completo del computer. Dovresti essere in grado di eseguire il ping anche dalla riga di comando. es: ping myservername

Aggiornare

Eseguire le seguenti query su ciascuna istanza di SQL Server e inserire i risultati nella domanda. Molti di questi suggerimenti per la risoluzione dei problemi provengono da: http://msdn.microsoft.com/en-us/library/ms189127.aspx

Mostra endpoint TCPC

SELECT type_desc, port FROM sys.tcp_endpoints;

Visualizza lo stato degli endpoint del mirroring

SELECT state_desc FROM sys.database_mirroring_endpoints;

Verificare che il RUOLO sia corretto

SELECT role FROM sys.database_mirroring_endpoints;

Visualizza le autorizzazioni per gli endpoint

SELECT EP.name, SP.STATE, 
   CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
      AS GRANTOR, 
   SP.TYPE AS PERMISSION,
   CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
      AS GRANTEE 
   FROM sys.server_permissions SP , sys.endpoints EP
   WHERE SP.major_id = EP.endpoint_id
   ORDER BY Permission,grantor, grantee; 
GO

L'accesso per l'account del servizio dall'altra istanza del server richiede l'autorizzazione CONNECT. Assicurarsi che l'accesso dall'altro server disponga dell'autorizzazione CONNECT. Per determinare chi dispone dell'autorizzazione CONNECT per un endpoint, su ciascuna istanza del server utilizzare la seguente istruzione Transact-SQL.

Esempio di output:

name    STATE   GRANTOR PERMISSION  GRANTEE
TSQL Local Machine  G   sqladmin    CO      public
TSQL Named Pipes    G   sqladmin    CO      public
TSQL Default TCP    G   sqladmin    CO      public
TSQL Default VIA    G   sqladmin    CO      public
Mirroring   G   SERVERNAME\Grantor  CO      SERVERNAME\Grantee

Concessore è l'account a cui è stata assegnata l'autorizzazione di connessione (CO), Concessionario è l'account che dispone dell'autorizzazione di connessione

Dalla riga di comando, eseguire ipconfig /alle annotare il nome host restituito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.