ฉันจะบอกว่ามีความสัมพันธ์ที่แข็งแกร่งระหว่างเหตุการณ์นอกพื้นที่ของคุณกับร่องรอยที่หายไป โปรดทราบว่าsp_configure
ตัวเลือกเพียงบอกคุณว่าการติดตามเริ่มต้นถูกเปิดใช้งาน แต่ไม่ได้หมายความว่ามันกำลังทำงานอยู่หรือมีอยู่แล้ว โปรดทราบว่าsys.traces
ไม่ใช่ตาราง แต่เป็นมุมมอง:
create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)
อะไรTABLE SYSTRACES
rowset ให้? มันทำงานยังไง? มีการกรองผลลัพธ์อย่างไร การเดาของคุณดีเท่ากับของฉัน อาจเป็นไปได้ว่าการติดตามยังคงมีอยู่ แต่อยู่ในสถานะที่ป้องกันไม่ให้ถูกเปิดเผยโดยมุมมองนี้ และอาจอยู่ในสถานะที่ยังคงป้องกันไม่ให้เริ่มต้นแม้หลังจากรีสตาร์ทบริการ
ขั้นแรกตรวจสอบให้แน่ใจว่าตำแหน่งที่ตั้งของการติดตามเริ่มต้นมีพื้นที่เพียงพอบัญชีบริการ SQL Server ยังคงมีสิทธิ์เพียงพอที่จะเขียนลงไปคุณไม่ได้อยู่ภายใต้โควต้าพื้นที่ใด ๆ ฯลฯ คุณสามารถรับตำแหน่งจากรีจิสทรีได้:
HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\
เมื่อคุณแน่ใจว่า SQL Server ควรจะสามารถเขียนไปยังโฟลเดอร์นี้ได้จากนั้นคุณสามารถปิดใช้งานและเปิดใช้งานการติดตามเริ่มต้นอีกครั้ง:
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;
คุณไม่ควรจะต้องเริ่มต้นใหม่บริการ SQL Server ที่จุดนี้ แต่อาจจะเป็นครั้งสุดท้ายเตะในกางเกงของ SQL Server sys.traces
ถ้าคุณยังไม่เห็นแถวใน โปรดทราบว่าtrace_id
คุณจะไม่ได้รับการรับประกันว่าจะอยู่ที่ 1
select * from sys.traces
ส่งคืน rowset ที่ว่างเปล่า