SQL Server-Agent, der die Selbstbeendigung initiiert


9

Im letzten Monat hat einer meiner Server Probleme mit dem SQL Server-Agenten. Es stoppt automatisch mit dem folgenden Fehler, der zufällig auftritt:

SQL Agent-Ausgabedatei
[097] Speicherverlust erkannt [204 Byte]
Ausnahme 5 in Zeile 403 der Datei e: \ sql9_sp2_t \ sql \ komodo \ src \ core \ sqlagent \ src \ alerter.cpp. SQLServerAgent initiiert die Selbstbeendigung

Ich habe diesen Fehler gegoogelt, aber nicht viele Informationen darüber erhalten. Sowohl SQL Server als auch Agent werden mit demselben Domänenkonto ausgeführt. Das Problem tritt jedoch nur beim SQL Server-Agentendienst auf.

Ich kann den SQL Server-Agentendienst auch in SQL Server Configuration Manager nicht sehen. Ich habe das SQL Server-Fehlerprotokoll und die Windows-Ereignisanzeige überprüft, aber keine verdächtigen Aktivitäten festgestellt.

Meine Speichereinstellungen sind korrekt konfiguriert. Der Server verfügt über 32 GB RAM und SQL Server ist für die Verwendung von maximal 26 GB Speicher zugewiesen.

Systemdetails:

  • SQL Server 2012 SP2 Std Edition 11.0.5058 64-Bit
  • Windows Server 2008 R2 Ent Edition 64-Bit
  • SQL Server gewidmet (keine anderen Apps werden auf dem Server ausgeführt)
  • Der Server wurde vor einigen Monaten von SQL Server 2005 EE auf 2012 SE aktualisiert.
  • Wir verwenden keinen Ereignisweiterleitungsserver .

Ich habe auch die msdb- Datenbank überprüft . Lief checkdb darauf und es wurde ohne Fehler erfolgreich abgeschlossen. Ich brauche Ihre Hilfe bei der Behebung von zwei Dingen:

  1. So beheben Sie das zufällige Stoppen des SQL Server-Agentendienstes
  2. So fügen Sie den SQL Server-Agentendienst in SQL Server Configuration Manager hinzu

Wir verfügen über Software von Drittanbietern zur Überwachung, sodass wir sofort benachrichtigt werden, wenn der Agentendienst beendet wird. Im Moment starten wir gerade den Dienst neu. Aber wir wollen die Grundursache finden.

Ich habe die folgende von Sean Gallardy vorgeschlagene Abfrage ausgeführt und 95 Zeilen zurückbekommen. Ich weiß nicht, wie ich das Ergebnis interpretieren soll.

select * 
from sys.dm_os_loaded_modules 
where name not like '%microsoft%'

Leider kann ich die Ergebnisse aus Sicherheitsgründen nicht veröffentlichen.

Bis ich die Lösung für dieses Problem gefunden habe, habe ich dem SQL Server-Agenten Wiederholungsversuche hinzugefügt, damit er automatisch neu gestartet werden kann, wenn er gestoppt wird.


Können Sie nach dem Tod des Agenten auf den Server zugreifen und die Verwendung der Auslagerungsdateien überprüfen? Es gibt Connect-Elemente, die darauf zurückzuführen sind, dass die Auslagerungsdatei durch verschiedene Apps (einschließlich HyperBac) erschöpft ist.
Cody Konior

Ich werde das überprüfen, wenn es wieder passiert.
SQLPRODDBA

Haben Sie beim Upgrade von SQL Server 2005 EE auf SQL Server 2012 SE ein Upgrade durchgeführt? Oder haben Sie eine komplett neue Version von SQL Server erstellt? Ich frage, weil ich in den frühen 2000er Jahren auf einige Fehler mit direkten Upgrades gestoßen bin, die behoben wurden, indem der Ordner vollständig gelöscht und SQL Server in einem leeren Ordner neu installiert wurde. (Ja, es war ein Ärgernis.)
RLF

Antworten:


1

Da Sie vor einigen Monaten ein Upgrade von SQL Server 2005 EE auf 2012 SE durchgeführt haben, sollten Sie Ihre Ereignisprotokolle speichern und löschen, da SqlAgent möglicherweise abstürzt, wenn Ereignisprotokoll-IDs von einem älteren SQL Server-Build angezeigt werden. Beispielsweise kann der Agent abstürzen, weil er ein Ereignis liest, das von einem SQL Server-Build vor dem aktuellen Build protokolliert wurde und nur Daten mit EINER Einfügezeichenfolge enthält, und der Agent versucht, es mit den neuesten Ressourceninformationen zu formatieren, für die ZWEI Zeichenfolgen erforderlich sind. Dies würde kurz vor dem Herunterfahren zu einem kurzen Speicherverlust führen, da ein Puffer für die Zeichenfolge zugewiesen wird, in die beim Absturz gedruckt werden soll.

Für den nicht im Konfigurationsmanager aufgeführten Agentendienst gibt es mehrere Möglichkeiten: https://support.microsoft.com/en-us/kb/941823

Stellen Sie sicher, dass Sie 2012 Configuration Manager ausführen

Sie können versuchen, das WMI-Repository neu zu erstellen: https://blogs.technet.microsoft.com/askperf/2009/04/13/wmi-rebuilding-the-wmi-repository/

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.