Microsoft SQL Server 2012-Spiegel werden getrennt


8

Ich habe einige Microsoft SQL Server 2012-Spiegel ohne Zeugen im asynchronen Modus, die sporadisch getrennt werden. Ich verwende SQL Server 2012 11.0.5058. Wenn ich mir die Protokolle auf der Spiegelseite ansehe, sehe ich

BUFs konnten nicht zugeordnet werden: FAIL_BUFFER_ALLOCATION 1

Es gibt eine ganze Reihe von Memoryclerk-Nachrichten

Fehler: 802, Schweregrad: 17, Status: 0.

Im Pufferpool ist nicht genügend Speicher verfügbar.

Fehler: 1454, Schweregrad: 16, Status: 1.

Die Datenbankspiegelung wird ausgesetzt. Die Serverinstanz 'Instanz' hat den Fehler 802, Status 0, Schweregrad 17 festgestellt, als sie als Spiegelungspartner für die Datenbank 'Datenbank' fungierte. Die Datenbankspiegelungspartner versuchen möglicherweise, den Fehler automatisch zu beheben und die Spiegelungssitzung fortzusetzen. Weitere Informationen finden Sie im Fehlerprotokoll, um weitere Fehlermeldungen zu erhalten.

Jede Hilfe, was zu überprüfen ist, um herauszufinden, warum die Spiegel nach dieser Ereigniskette aufgehängt und dann getrennt werden, wäre willkommen. Danach kann ich die Spiegel wieder herstellen und sie funktionieren ein paar Tage lang einwandfrei und dann passiert es wieder von vorne.


Auf was ist der maximale Speicher eingestellt? Verwenden Sie auch zufällig Service Broker?
Kin Shah

Auf Spiegel und primär 2147483647 MB. Service Broker wird nicht verwendet.
John Wesley Gordon

2
Ok .. das ist eine Sache, um es nicht standardmäßig zu machen - sonst wird SQL Server den gesamten Speicher verbrauchen, der Ihr Betriebssystem hungert. Können Sie einen vernünftigen Wert festlegen? Als guten Ausgangspunkt können Sie diese Referenz verwenden. Können Sie auch überprüfen, ob Ihr SQL Server-Build 11.0.5048falsch klingt?
Kin Shah

Tippfehler, es war 11.0.5058
John Wesley Gordon

1
Also SP2 RTM, das anderthalb Jahre alt ist - haben Sie überlegt, auf SP3 (und optional CU1) umzusteigen? Ich weiß nicht, ob es Ihr Problem beheben wird, aber es gibt viele andere Korrekturen, die sich lohnen könnten.
Aaron Bertrand

Antworten:


1

Ich hatte in meiner vorherigen Firma ein sehr ähnliches Problem. Das Datenbank-Miroring wurde regelmäßig mit demselben Fehler angehalten, den Sie erhalten. Das Spiegeln wurde nie wieder alleine verbunden, aber normalerweise konnte ich es wieder aufnehmen mit:

ALTER DATABASE <Database Name> SET PARTNER RESUME

Nach einigen Wochen stellten wir fest, dass unsere Arbeitslast sehr ungleich verteilt war und manchmal 100% des Speichers verwendet wurde, obwohl auf dem Server genügend Speicher vorhanden war und der Instanz genügend Speicher zugewiesen wurde. Da wir die meiste Zeit über genügend Speicher verfügten, waren wir nicht berechtigt, mehr zu kaufen. Am Ende habe ich die Pufferpool-Erweiterungsdatei vergrößert und auf einer der SSDs abgelegt, auf denen zufällig genügend Speicherplatz vorhanden war. Das Problem mit der Spiegelung ist nie wieder aufgetreten. Ich kann nicht garantieren, dass dasselbe für Sie funktioniert. Ich teile hauptsächlich meine Erfahrungen.


0


Einige Fragen, die Sie stellen und mit der Fehlerbehebung beginnen müssen 1.Wie viele Datenbanken spiegeln Sie
? 2.Wie viel RAM steht für SQL Server
zur Verfügung? 3.Wie groß ist die gespiegelte Datenbank?

Nachfolgend finden Sie die groben Schätzungen der Spiegelungsanforderungen, wenn die Spiegelung aktiviert ist

on Prinicipal:
4 MB pro Datenbank für DBM- Sendepuffer plus 4 MB für Protokollschreibpuffer

On Mirror:
1 MB für Protokollschreibpuffer und 1 MB für Protokoll-REDO-Puffer

Sie können auch den Speicherverbrauch pro Datenbank auf der Spiegelinstanz überprüfen, um festzustellen, welche Datenbank der Engpass ist, und mit der Fehlerbehebung beginnen

Speicherauslastung pro Datenbank - SQL Server


Ich habe 3 Datenbanken gespiegelt. Der Primärserver verfügt über 16 GB Speicher und der Spiegel über 20 GB Speicher. Die derzeit größte Speichernutzung auf dem Spiegel beträgt 3,8 MB für die Spiegel. Die Spiegeldatenbank hat ihre eigenen Primärdaten. Die größte primäre ist 9301 MB. Die Gesamtzahl aller Datenbanken auf dem Spiegelserver beträgt 9593,75 MB. Dies scheint nicht annähernd die 20-GB-Marke zu erreichen. Die primäre ist noch weniger und verbraucht nur 6765 MB.
John Wesley Gordon
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.