ฉันรู้ว่าฉันสามารถวนรอบข้อผิดพลาดปัจจุบันได้อย่างง่ายดายโดยการเรียกใช้ sp_cycle_errorlog แต่ฉันสงสัยว่า SQL Server จะลบไฟล์บันทึกข้อผิดพลาดเก่า / ที่เก็บถาวรเลยหรือไม่ ดูเหมือนจะไม่สามารถหาคำตอบได้ทุกที่ ...
ฉันรู้ว่าฉันสามารถวนรอบข้อผิดพลาดปัจจุบันได้อย่างง่ายดายโดยการเรียกใช้ sp_cycle_errorlog แต่ฉันสงสัยว่า SQL Server จะลบไฟล์บันทึกข้อผิดพลาดเก่า / ที่เก็บถาวรเลยหรือไม่ ดูเหมือนจะไม่สามารถหาคำตอบได้ทุกที่ ...
คำตอบ:
ในSQL Server Management Studio
ในObject Explorer
> Management
มีการตั้งค่าถ้าคุณคลิกขวาบนและเลือกSQL Server Logs
Configure
คุณสามารถระบุจำนวนไฟล์บันทึกที่คุณต้องการเก็บ เมื่อถึงหมายเลขนั้นมันจะเริ่มลบหมายเลขเก่าออก
รีสตาร์ท SQL Server 7 ครั้ง คุณจะเห็นว่าคุณยังมีเพียง 7 ERRORLOG*
ไฟล์ (ขึ้นอยู่กับรุ่น) นี่คือไฟล์บันทึกปัจจุบันและไฟล์บันทึกล่าสุด 6 ไฟล์
หมายเหตุ: คุณอาจต้องเปลี่ยน 7 เป็นอย่างอื่นในกรณีที่คุณเปลี่ยนจำนวนบันทึกข้อผิดพลาดที่ SQL Server เก็บไว้ ฉันเชื่อว่าสูงสุดคือ 99 แต่ไม่ว่าการตั้งค่าปัจจุบันของคุณคืออะไรในที่สุดมันก็จะทำการรีไซเคิลและกำจัดไฟล์เก่า
ฉันทดสอบและถ้าคุณยกเลิกการเลือกช่องที่ระบุว่า:
☐ จำกัด จำนวนไฟล์บันทึกข้อผิดพลาดก่อนนำกลับมาใช้ใหม่
... ซึ่งหมายถึง (อย่างน้อยสำหรับฉัน) เก็บไฟล์บันทึกทั้งหมดมันจะยังคงเก็บเฉพาะไฟล์บันทึกข้อผิดพลาดปัจจุบันและสำรองข้อมูล 6รายการ หากคุณเปลี่ยนรีจิสตรีคีย์ที่@RLF ชี้ให้เห็นการตั้งค่ารีจิสตรีคีย์จะถูกแทนที่ (ราวกับว่าคุณไม่ได้ทำการยกเลิกการเลือกกล่อง) แต่คุณจะยังคงถูก จำกัด จำนวนไฟล์บันทึกข้อผิดพลาดสำรองระหว่าง 6 และ 99
ดังนั้นคำตอบสั้น ๆ คือ: ใช่ในทุกกรณี SQL Server จะสามารถลบไฟล์บันทึกข้อผิดพลาดเก่าได้ในที่สุด
SQL Server จะบันทึกข้อผิดพลาดซ้ำโดยอัตโนมัติตราบใดที่คุณกำหนดค่าอย่างถูกต้อง
ดูhttp://msdn.microsoft.com/en-us/library/ms177285.aspx ฉันได้คัดลอกคะแนนเด่นด้านล่าง:
ใน Object Explorer ขยายอินสแตนซ์ของ SQL Server ขยายการจัดการคลิกขวาบันทึกของเซิร์ฟเวอร์ SQL แล้วคลิกตั้งค่าคอนฟิก
ในกล่องโต้ตอบกำหนดค่าบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ SQL ให้เลือกจากตัวเลือกต่อไปนี้
จำกัด จำนวนไฟล์บันทึกข้อผิดพลาดก่อนที่จะรีไซเคิล
จำนวนไฟล์บันทึกข้อผิดพลาดสูงสุด
ใช่มีการกำหนดค่าสำหรับจำนวนข้อผิดพลาดที่จะรักษา
มันสามารถพบได้ในคีย์รีจิสทรีที่:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs
คุณอาจต้องเพิ่มรหัสนี้
MSSQLServer
ด้วย ID อินสแตนซ์ของคุณหากเป็นอินสแตนซ์ที่มีชื่อ (เช่นMSSQL12.SQL2014
สำหรับอินสแตนซ์ที่มีชื่อของฉันในปี 2014 ที่มีชื่อSQL2014
)