Tôi muốn nói có một mối tương quan mạnh mẽ giữa sự kiện ngoài vũ trụ của bạn và dấu vết còn thiếu. Lưu ý rằng sp_configure
tùy chọn chỉ cho bạn biết rằng theo dõi mặc định đã được bật, nhưng điều đó không có nghĩa là nó đang chạy hoặc thậm chí nó còn tồn tại. Lưu ý rằng đó sys.traces
không phải là bảng mà là dạng xem:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
Các hàng TABLE SYSTRACES
cung cấp những gì? Làm thế nào nó hoạt động? Kết quả của nó được lọc như thế nào? Dự đoán của bạn là tốt như của tôi. Có thể dấu vết vẫn còn đó, nhưng trong trạng thái ngăn không cho nó bị lộ bởi quan điểm này. Và nó có thể ở trạng thái vẫn ngăn không cho nó khởi động ngay cả sau khi khởi động lại dịch vụ.
Trước tiên, hãy đảm bảo vị trí của dấu vết mặc định có đủ dung lượng, tài khoản dịch vụ SQL Server vẫn có đủ quyền để ghi vào đó, bạn không phải chịu bất kỳ hạn ngạch không gian nào, v.v. Bạn có thể lấy vị trí từ sổ đăng ký:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
Khi bạn chắc chắn rằng SQL Server sẽ có thể ghi vào thư mục này, thì bạn có thể tắt và bật lại theo dõi mặc định:
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;
Bạn không cần phải khởi động lại dịch vụ SQL Server tại thời điểm này, nhưng có thể là cú hích cuối cùng trong quần của SQL Server nếu bạn vẫn không thấy một hàng trong sys.traces
. Lưu ý rằng trace_id
bạn nhận được không được đảm bảo ở mức 1.
select * from sys.traces
trả về một hàng trống