Saya akan mengatakan ada korelasi yang kuat antara acara Anda di luar angkasa dan jejak yang hilang. Perhatikan bahwa sp_configure
opsi hanya memberi tahu Anda bahwa jejak default diaktifkan, tetapi itu tidak berarti bahwa itu sedang berjalan atau bahkan ada. Perhatikan bahwa sys.traces
ini bukan tabel tetapi tampilan:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
Apa yang TABLE SYSTRACES
disediakan rowset? Bagaimana cara kerjanya? Bagaimana hasilnya disaring? Dugaanmu sebaik milikku. Mungkin saja jejaknya masih ada di sana, tetapi dalam keadaan yang mencegahnya terekspos oleh pandangan ini. Dan mungkin dalam keadaan yang masih mencegahnya dimulai bahkan setelah memulai kembali layanan.
Pertama, pastikan lokasi jejak default memiliki ruang yang cukup, akun layanan SQL Server masih memiliki izin yang memadai untuk menulisnya, Anda tidak tunduk pada kuota ruang, dll. Anda bisa mendapatkan lokasi dari registri:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Setelah Anda yakin bahwa SQL Server harus dapat menulis ke folder ini, maka Anda dapat menonaktifkan dan mengaktifkan kembali jejak default:
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;
Anda seharusnya tidak perlu me-restart layanan SQL Server pada saat ini, tetapi mungkin merupakan tendangan terakhir di celana SQL Server jika Anda masih tidak melihat baris masuk sys.traces
. Perhatikan bahwa yang trace_id
Anda dapatkan tidak dijamin untuk menginap di 1.
select * from sys.traces
mengembalikan rowset kosong