การจัดการไฟล์ของคุณสามารถใช้งานออนไลน์ได้อย่างสมบูรณ์ คุณมีสองเส้นทางขึ้นอยู่กับความต้องการของคุณในการเก็บข้อมูลบันทึกของคุณเพื่อการกู้คืน:
ไม่ต้องการการกู้คืนเวลา
- แปลงฐานข้อมูลเป็นการ
SIMPLE
กู้คืน เรียกใช้งานจุดตรวจสอบเพื่อเขียนธุรกรรมไปยังดิสก์
- แผ่ล็อก
- ปรับขนาดบันทึกให้มีขนาดที่เหมาะสม
ฉันขอแนะนำให้ตั้งค่าจำนวนการเติบโตคงที่และการเติบโตแบบไม่ จำกัด หมายเหตุจำนวนการเติบโตคงที่นั้นขึ้นอยู่กับจำนวนเงินฉันขอแนะนำให้ใช้ขนาด 1-2 GB ในตอนแรกทั้งนี้ขึ้นอยู่กับปริมาณการเติบโตที่บันทึกคาดว่าจะเห็น เป็นการดีที่บันทึกของคุณจะไม่เติบโตมากนักดังนั้นสิ่งนี้จะไม่ส่งผลกระทบมากนัก หากบันทึกของคุณมีการเติบโตอย่างสม่ำเสมอคุณอาจต้องทบทวนขนาดของคุณอีกครั้ง
สำเร็จโดยใช้:
ALTER DATABASE [foo]
SET RECOVERY SIMPLE;
CHECKPOINT;
DBCC SHRINKFILE (foo_log,0);
ALTER DATABASE [foo]
MODIFY FILE (NAME=foo_log,SIZE=8000MB,MAXSIZE=UNLIMITED,FILEGROWTH=1000MB);
--Optional if you want the database in full recovery mode
--for point in time recovery going forward
ALTER DATABASE [foo]
SET RECOVERY FULL;
ต้องการการกู้คืนเวลา
Hangup ที่ใหญ่ที่สุดคือคุณไม่สามารถย่อขนาดไฟล์บันทึกของคุณผ่านเซ็กเมนต์ VLF ที่ใช้งานอยู่ในปัจจุบัน หากต้องการดูสิ่งนี้คุณสามารถใช้DBCC LOGINFO
ในบริบทฐานข้อมูล ส่วนใด ๆ ที่มีสถานะ = 2 นั้นจะทำงาน เมื่อต้องการล้างเซกเมนต์ที่ใช้งานอยู่คุณจะต้องเรียกใช้การสำรองข้อมูลล็อกธุรกรรมเมื่อไม่มีธุรกรรมใดที่ทำงานอยู่ในเซกเมนต์นั้น ขั้นตอนของคุณคือ:
- เรียกใช้การสำรองข้อมูลบันทึกธุรกรรม
- ย่อขนาดไฟล์ของคุณ (แผ่แบน แต่ถ้าฐานข้อมูลของคุณใช้งานอยู่มันจะยากที่จะทำ)
- ทำซ้ำขั้นตอนที่ 1 และ 2 จนกระทั่งบันทึกของคุณมีขนาดที่เหมาะสมนึกคิดเล็กที่สุดเท่าที่จะทำได้
- ปรับขนาดบันทึกให้มีขนาดที่เหมาะสม
สำเร็จโดยใช้:
BACKUP LOG [foo] TO DISK='<Location of t-log backup>';
DBCC SHRINKFILE (foo_log,0);
--Repeat the above until your log file is small "enough"
ALTER DATABASE [foo]
MODIFY FILE (NAME=foo_log,SIZE=8000MB,MAXSIZE=UNLIMITED,FILEGROWTH=1000MB);
แหล่งข้อมูลเพิ่มเติมเพื่อให้เข้าใจสิ่งที่เกิดขึ้นที่นี่: