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:
- So beheben Sie das zufällige Stoppen des SQL Server-Agentendienstes
- 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.
quelle
Antworten:
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/
quelle