Ich würde sagen, dass es eine starke Korrelation zwischen Ihrem Out-of-Space-Ereignis und der fehlenden Spur gibt. Beachten Sie, dass die sp_configure
Option lediglich angibt, dass die Standardablaufverfolgung aktiviert ist. Dies bedeutet jedoch nicht, dass sie ausgeführt wird oder sogar vorhanden ist. Beachten Sie, dass dies sys.traces
keine Tabelle, sondern eine Ansicht ist:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
Was bietet das TABLE SYSTRACES
Rowset? Wie funktioniert es? Wie werden die Ergebnisse gefiltert? Deine Vermutung ist genauso gut wie meine. Es ist möglich, dass die Ablaufverfolgung noch vorhanden ist, sich jedoch in einem Zustand befindet, der verhindert, dass sie von dieser Ansicht verfügbar gemacht wird. Möglicherweise befindet es sich auch nach dem Neustart des Dienstes in einem Zustand, in dem der Start weiterhin verhindert wird.
Stellen Sie zunächst sicher, dass der Speicherort der Standardablaufverfolgung über ausreichend Speicherplatz verfügt, das SQL Server-Dienstkonto weiterhin über ausreichende Berechtigungen zum Schreiben verfügt, Sie keinen Speicherplatzkontingenten unterliegen usw. Sie können den Speicherort aus der Registrierung abrufen:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Sobald Sie sicher sind, dass SQL Server in diesen Ordner schreiben kann, können Sie die Standardablaufverfolgung deaktivieren und wieder aktivieren:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 1;
GO
RECONFIGURE WITH OVERRIDE;
Sie sollten den SQL Server-Dienst an dieser Stelle nicht neu starten müssen, aber es kann ein letzter Kick in der Hose von SQL Server sein, wenn Sie immer noch keine Zeile in sehen sys.traces
. Beachten trace_id
Sie, dass das, was Sie erhalten, nicht garantiert bei 1 bleibt.
select * from sys.traces
gibt ein leeres Rowset zurück