SQL Server เคยลบไฟล์บันทึกข้อผิดพลาดเก่าหรือไม่?


12

ฉันรู้ว่าฉันสามารถวนรอบข้อผิดพลาดปัจจุบันได้อย่างง่ายดายโดยการเรียกใช้ sp_cycle_errorlog แต่ฉันสงสัยว่า SQL Server จะลบไฟล์บันทึกข้อผิดพลาดเก่า / ที่เก็บถาวรเลยหรือไม่ ดูเหมือนจะไม่สามารถหาคำตอบได้ทุกที่ ...

คำตอบ:


19

ในSQL Server Management StudioในObject Explorer> Managementมีการตั้งค่าถ้าคุณคลิกขวาบนและเลือกSQL Server Logs Configureคุณสามารถระบุจำนวนไฟล์บันทึกที่คุณต้องการเก็บ เมื่อถึงหมายเลขนั้นมันจะเริ่มลบหมายเลขเก่าออก

ป้อนคำอธิบายรูปภาพที่นี่


8

รีสตาร์ท SQL Server 7 ครั้ง คุณจะเห็นว่าคุณยังมีเพียง 7 ERRORLOG*ไฟล์ (ขึ้นอยู่กับรุ่น) นี่คือไฟล์บันทึกปัจจุบันและไฟล์บันทึกล่าสุด 6 ไฟล์

หมายเหตุ: คุณอาจต้องเปลี่ยน 7 เป็นอย่างอื่นในกรณีที่คุณเปลี่ยนจำนวนบันทึกข้อผิดพลาดที่ SQL Server เก็บไว้ ฉันเชื่อว่าสูงสุดคือ 99 แต่ไม่ว่าการตั้งค่าปัจจุบันของคุณคืออะไรในที่สุดมันก็จะทำการรีไซเคิลและกำจัดไฟล์เก่า

ฉันทดสอบและถ้าคุณยกเลิกการเลือกช่องที่ระบุว่า:

☐ จำกัด จำนวนไฟล์บันทึกข้อผิดพลาดก่อนนำกลับมาใช้ใหม่

... ซึ่งหมายถึง (อย่างน้อยสำหรับฉัน) เก็บไฟล์บันทึกทั้งหมดมันจะยังคงเก็บเฉพาะไฟล์บันทึกข้อผิดพลาดปัจจุบันและสำรองข้อมูล 6รายการ หากคุณเปลี่ยนรีจิสตรีคีย์ที่@RLF ชี้ให้เห็นการตั้งค่ารีจิสตรีคีย์จะถูกแทนที่ (ราวกับว่าคุณไม่ได้ทำการยกเลิกการเลือกกล่อง) แต่คุณจะยังคงถูก จำกัด จำนวนไฟล์บันทึกข้อผิดพลาดสำรองระหว่าง 6 และ 99

ดังนั้นคำตอบสั้น ๆ คือ: ใช่ในทุกกรณี SQL Server จะสามารถลบไฟล์บันทึกข้อผิดพลาดเก่าได้ในที่สุด


7

SQL Server จะบันทึกข้อผิดพลาดซ้ำโดยอัตโนมัติตราบใดที่คุณกำหนดค่าอย่างถูกต้อง

ดูhttp://msdn.microsoft.com/en-us/library/ms177285.aspx ฉันได้คัดลอกคะแนนเด่นด้านล่าง:

ใน Object Explorer ขยายอินสแตนซ์ของ SQL Server ขยายการจัดการคลิกขวาบันทึกของเซิร์ฟเวอร์ SQL แล้วคลิกตั้งค่าคอนฟิก

ในกล่องโต้ตอบกำหนดค่าบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ SQL ให้เลือกจากตัวเลือกต่อไปนี้

  • จำกัด จำนวนไฟล์บันทึกข้อผิดพลาดก่อนที่จะรีไซเคิล

    • ตรวจสอบเพื่อ จำกัด จำนวนบันทึกข้อผิดพลาดที่สร้างขึ้นก่อนนำไปรีไซเคิล บันทึกข้อผิดพลาดใหม่จะถูกสร้างขึ้นทุกครั้งที่มีการเริ่มต้นอินสแตนซ์ของ SQL Server SQL Server เก็บสำรองข้อมูลของบันทึกหกรายการก่อนหน้านี้เว้นแต่คุณจะเลือกตัวเลือกนี้และระบุจำนวนสูงสุดของแฟ้มบันทึกข้อผิดพลาดด้านล่าง
  • จำนวนไฟล์บันทึกข้อผิดพลาดสูงสุด

    • ระบุจำนวนสูงสุดของไฟล์บันทึกข้อผิดพลาดที่สร้างขึ้นก่อนที่จะถูกรีไซเคิล ค่าเริ่มต้นคือ 6 ซึ่งเป็นจำนวนบันทึกการสำรองข้อมูลก่อนหน้านี้ SQL Server จะเก็บไว้ก่อนที่จะรีไซเคิล

2

ใช่มีการกำหนดค่าสำหรับจำนวนข้อผิดพลาดที่จะรักษา

มันสามารถพบได้ในคีย์รีจิสทรีที่:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs

คุณอาจต้องเพิ่มรหัสนี้


1
โปรดทราบว่าคุณต้องแทนที่อินสแตนซ์แรกMSSQLServerด้วย ID อินสแตนซ์ของคุณหากเป็นอินสแตนซ์ที่มีชื่อ (เช่นMSSQL12.SQL2014สำหรับอินสแตนซ์ที่มีชื่อของฉันในปี 2014 ที่มีชื่อSQL2014)
Aaron Bertrand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.