Warum bricht mein Datenbankspiegel zusammen, nachdem die Dateigruppeneinstellungen von RESTRICTED_USER in MULTI_USER geändert wurden?

9

Meine Umgebung ist die folgende: VMWare 5.5 Vitalized Server MS Windows Server 2008R2 Enterprise- Domäne und SQL Server 2008 R2 Enterprise . Zentraler Speicher mit Fibre-Channel-Verbindung.

Ich habe Partitionen in meinem SQL Server DB. Ich habe 2 file groups: eine mit Live-Daten (FG1) , die zweite mit historischen Daten (HDG) .

Die zweite Dateigruppe ist read-only. Jeden Monat mache ich Bewegungen in Partitionen - ich füge neue Daten (vom Vormonat) zu historischen Daten hinzu. Dieser Vorgang erfolgt automatisch .

Wir haben unsere Datenbank auf einen neuen Server verschoben. Anfangs musste ich den Vorgang manuell durchführen . Während dieser Operation fällt mein Spiegel (nach Operation 3 - siehe Prozessablauf unten) mit folgendem Fehler aus:

AUF PRINCIPAL SERVER:

REIHE 0 im LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid84

Message
Setting database option MULTI_USER to ON for database MYDB.

REIHE 1 im LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid18s

Message
Error: 1453, Severity: 16, State: 1.

REIHE 2 im LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Current - 16.6.2015 07:55:00)

Source      spid18s

Message
'TCP://10.201.27.154:5022', the remote mirroring partner for database 'MYDB', encountered error 823, status 3, severity 24. Database mirroring has been suspended.  Resolve the error on the remote server and resume mirroring, or remove mirroring and re-establish the mirror server instance.

BEMERKUNG: Ich habe diesen Vorgang viele Male automatisch auf dem alten Server ausgeführt und es tritt nie ein solcher Fehler auf.

AUF SPIEGELSERVER:

REIHE 1 im LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Archive #3 - 15.6.2015 21:33:00)

Source      spid17s

Message
Error: 823, Severity: 24, State: 3.

REIHE 2 im LOG:

Date        15.6.2015 20:54:11
Log     SQL Server (Archive #3 - 15.6.2015 21:33:00)

Source      spid17s

Message
The operating system returned error 5(Access is denied.) to SQL Server during a write at offset 0000000000000000 in file 'e:\Databases\MYDB_HISTRICAL.ndf'. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.

Mein Prozess folgt:

1. Ich mache mehrere Sicherungen der Datenbank (vollständige, Dateigruppen- und TLog-Sicherungen).

2. Ich setze DB auf RESTRICTED_USER(um das Entfernen des schreibgeschützten Flag für historische Dateigruppen per Skript zu ermöglichen).

2a. Ich entferne das READ-ONLYFlag meiner historischen Dateigruppe.

3. Ich habe DB so eingestellt MULTI_USER, dass der normale Betrieb unserer Software möglich ist.

4. Ich aktualisiere Partitionen, damit die Daten in die historische Dateigruppe verschoben werden.

5. Ich wiederhole die Schritte 2 , 2a und 3, damit ich die historische Dateigruppe NUR LESEN erneut einstellen kann.

6. Ich mache wieder Backups.

Hat jemand eine Idee, warum ich diesen Fehler erhalte?

EDIT: Wir erhalten das gleiche Problem während der verschiedenen Phase des Verfahrens. Dies ist die einzige Situation, in der der Spiegel zusammenbricht. Ich nehme an, das Problem liegt in der Prozedur, aber ich kann nicht herausfinden, warum!

Bogdan Bogdanov
quelle
Error: 823, Severity: 24scheint Hardware-Problem. Überprüfen Sie Ihre Festplatten, um festzustellen, ob sie defekt sind. Führen Sie checkdb für die Datenbanken aus, um sicherzustellen, dass sie sauber sind.
Kin Shah
Ich bin mir nicht sicher, @Kin. Wir haben einen brandneuen optisch angebrachten spezialisierten IBM Speicher. Es arbeitet ab ca. 3 Monaten. Und dies war das einzige Mal, dass wir einen solchen Fehler erhalten. Tatsächlich gibt es ungefähr 10 Zeilen mit diesem Fehler, aber alle sind in diesem Zeitraum aufgetreten. Wir zerstören den Spiegel und erschaffen ihn erneut. Wir haben Probleme, den Spiegel zu entfernen. Also entfernen wir es manuell.
Bogdan Bogdanov
Fehler 823 with sev 24ist ein Hardwareproblem. Führen Sie Sicherungen auf Dateiebene anstelle von nativen SQL Server-Sicherungen durch oder wird auf dem Server eine Antivirensoftware ausgeführt? Sie sollten SQL Agent-Warnungen einfügen, um Sie zu benachrichtigen, wenn ein 823-Fehler auftritt. Dieses Skript hilft Ihnen dabei . Außerdem ist 823 ein böser Fehler - es heißt, dass eine E / A-Operation auf Betriebssystemebene fehlgeschlagen ist und das E / A-Subsystem eine Beschädigung verursacht - SQL Server hat keine Seitenprüfung durchgeführt
Kin Shah
Wir machen beide Arten von Backups, @Kin. Wir müssen auch VmWare replicationa remote host. Das, was mir aufgefallen ist, bis ich Ihnen eine Antwort geschrieben habe, ist, dass wir den Spiegel nicht auf normale Weise zerstören können. Die Datei wurde gesperrt und wir müssen stop SQL serviceund müssen die Datenbankdateien in ein anderes Verzeichnis verschieben. Von diesem Moment an ist alles in Ordnung (ich überprüfe Protokolle mit sys.xp_readerrorlog). Ein anderer Gedanke ist, ob eine VmWare-Replikation in diesem Moment stattfindet, aber ich bin nicht sicher, wie sich dies auf den Prozess auswirkt (ich weiß wenig darüber VmWare).
Bogdan Bogdanov
We do both type of backupsdas könnte ein Problem sein. VM-Snapshots sollten nicht als Alternative zu nativen SQL Server-Sicherungen verwendet werden.
Kin Shah

Antworten:

0

Wir haben das Problem gefunden. Es ist ein Fehler in SQL Server. Wenn wir READ_WRITEden Befehl setzen, wird er nicht richtig in die Datenbank übertragen mirror. Beim Ändern partitionsdes Skriptstarts auf dem Spiegelserver ist ein Fehler aufgetreten. Danach wird die Synchronisation ruiniert und die Datenbank auf dem Spiegel wird gesperrt (im suspendedZustand).

Wir beheben das Problem, indem wir SQL Server auf die neueste Version aktualisieren (unsere ursprüngliche Version war ohne SP).

Bogdan Bogdanov
quelle