Verbinden Sie den Spiegelungsserver SQL Server 2008 R2 erneut


10

Der Failover-Server hat den Status (Spiegeln, Nicht verbunden, In Wiederherstellung) und der Hauptserver den Status (Prinzipal, Nicht verbunden).

Wie werden diese Server wieder verbunden?


Hier ist eine verwandte Frage, die dieser sehr ähnlich sieht. Probieren Sie es aus und sehen Sie, ob es hilft: Brechen und Wiederherstellen eines Spiegels Hier einige kurze Schritte zum Anhalten oder Fortsetzen der Datenbankspiegelung Wenn Sie nach dem Lesen dieser Probleme immer noch Probleme haben, aktualisieren Sie Ihren Beitrag mit dem, was Sie alle versucht haben und wir werden von dort gehen.
Aaron

Antworten:


6

Manchmal wird dies durch einen Neustart des Spiegelungsendpunkts auf dem Hauptserver behoben.

Verwenden Sie dazu das folgende T-SQL.

ALTER ENDPOINT Endpoint_Name STATE = STOPPED

ALTER ENDPOINT Endpoint_Name STATE = STARTED

Um den Namen des Endpunkts zu erhalten.

SELECT * FROM sys.endpoints
WHERE type = 4

Weitere Informationen finden Sie in KB 2490051 .


1
Ich musste den Endpunkt auf dem Spiegelserver neu starten, wie KB als zweite Option vorschlägt.
Jan Zahradník

4

Versuchen Sie zunächst, sie dazu zu bringen, sich wieder mit diesem T-SQL-Befehl auf dem Principal zu verbinden:

ALTER DATABASE AdventureWorks2012 SET PARTNER RESUME;

Wenn dies fehlschlägt, liegt ein Kommunikationsproblem zwischen dem Schulleiter und dem Spiegel vor, und hier beginnt der Spaß. Dies kann alles sein, von IP-Konnektivität über Sicherheit auf den Spiegelungsendpunkten bis hin zu verschiedenen Verschlüsselungsmethoden. Ich würde Robert Davis 'Buch Pro SQL Server 2008 Mirroring empfehlen, wenn Sie sich eingehend mit der Fehlerbehebung befassen müssen.


2

In unserem Fall verwenden wir die Zertifikatauthentifizierung zum Verbinden von Spiegelungsendpunkten. Das Problem bestand darin, dass eines der von den Spiegelungsendpunkten verwendeten Zertifikate abgelaufen war.

Sie können das Ablaufdatum des Zertifikats überprüfen, das an der Endpunktauthentifizierung beteiligt ist, indem Sie a

SELECT * FROM sys.certificates  

Wenn dies der Fall ist, müssen Sie neue Zertifikate für alle abgelaufenen Zertifikate erstellen und diese ALTER ENDPOINTnach dem Import ausführen.


1

Ich habe dieses Problem durch die nächsten Schritte behoben. Ein Neustart des Endpunkts nur auf PRIMARY hat nicht geholfen

  1. Auf PRIMARY:

    SELECT * FROM sys.endpoints WHERE type = 4
    
    ALTER ENDPOINT Mirroring STATE = STOPPED
    
    ALTER ENDPOINT Mirroring STATE = STARTED
    
  2. Auf SPIEGEL:

    SELECT * FROM sys.endpoints WHERE type = 4
    
    ALTER ENDPOINT Mirroring STATE = STOPPED
    
    ALTER ENDPOINT Mirroring STATE = STARTED
    
  3. Zurück auf PRIMARY:

    ALTER DATABASE PACXDSite SET PARTNER RESUME;

0

Fall:

Wenn Sie den folgenden Befehl auf dem Hauptserver ausführen:

alter database  'Database_Name' set partner off

Nachdem Sie den obigen Befehl ausgeführt haben, wird Ihre Datenbank [mirror, disconnected]auf dem Spiegelserver in den Status versetzt.

Auflösung:

Schritt 1: Führen Sie die folgende Abfrage auf dem Spiegel aus

exec sp_resetstatus 'Database_Name'

Schritt 2: Nachdem Sie den folgenden Befehl ausgeführt haben, ist Ihre Datenbank verfügbar.

restore database 'Database_Name' with recovery

Hinweis: Die Wiederherstellung von Schritt 2 dauert einige Zeit.


Dies macht Spiegel völlig getrennt und Sie müssen die Spiegelung erneut einrichten
Alexey F

0

Wenn "RESUME PARTNER" nicht funktioniert

ALTER DATABASE AdventureWorks2016 SET PARTNER RESUME;

Ich würde den Spiegel für diese Datenbank (en) brechen und sie neu konfigurieren.

--STEP 1 ON PRINCIPAL, brechen Sie den Spiegel für eine Datenbank

ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;

--STEP 2 ON MIRROR, brechen Sie den Spiegel für eine Datenbank

ALTER DATABASE AdventureWorks2016 SET PARTNER OFF;

- SCHRITT 3 AUF SPIEGEL

RESTORE LAST FULL BACKUP DATABASE WITH NO RECOVERY 
RESTORE TRAN BACKUP DATABASE WITH NO RECOVERY

- SCHRITT 4 AUF SPIEGEL

ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://PRINCIPAL.MyDomain.COM:5022';

- SCHRITT 5 ZUM PRINZIP

ALTER DATABASE AdventureWorks2016 SET PARTNER = 'TCP://MIRROR.MyDomain.COM:5022';

- SCHRITT 6 AUF PRINZIP, wenn bereits ein ZEUGNIS konfiguriert wurde

ALTER DATABASE AdventureWorks2016 SET WITNESS = 'TCP://WITNESS.MyDomain.COM:5022';

Es ist erwähnenswert, dass alle oben genannten Aufgaben während der Arbeitszeit ausgeführt werden können, da die Hauptdatenbank immer online und verfügbar ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.