ฉันต้องลบไฟล์ LDF ก่อนส่งให้เพื่อนร่วมงาน ฉันจะบังคับให้ SQL Server ตัดทอนบันทึกได้อย่างไร
ฉันต้องลบไฟล์ LDF ก่อนส่งให้เพื่อนร่วมงาน ฉันจะบังคับให้ SQL Server ตัดทอนบันทึกได้อย่างไร
คำตอบ:
ถ้าฉันจำได้ดี ... ในตัววิเคราะห์แบบสอบถามหรือเทียบเท่า:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
แต่ไม่มี
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
ฉันแทนบรรทัดแรกสำหรับ
ในสตูดิโอการจัดการ:
Properties
Options
Tasks
-> Shrink
->Files
อีกทางหนึ่งคือ SQL ที่จะทำ:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
use mydatabase
ดำเนินการก่อนdbcc shrinkfile
สำหรับ SQL Server 2008 คำสั่งคือ:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
สิ่งนี้ทำให้ไฟล์บันทึก 14GB ลดลงเหลือ 1MB
สำหรับ SQL 2008 คุณสามารถสำรองข้อมูลบันทึกไปยังnul
อุปกรณ์:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
จากนั้นใช้DBCC SHRINKFILE
เพื่อตัดทอนไฟล์บันทึก
ชื่อบันทึกการสำรองข้อมูลที่มี truncate_only ตามด้วยคำสั่ง dbcc shrinkfile
ตั้งแต่คำตอบสำหรับฉันถูกฝังอยู่ในความคิดเห็น สำหรับ SQL Server 2012 และอื่น ๆ คุณสามารถใช้สิ่งต่อไปนี้:
BACKUP LOG Database TO DISK='NUL:'
DBCC SHRINKFILE (Database_Log, 1)
ตัวเลือกอื่นทั้งหมดคือการแยกฐานข้อมูลผ่าน Management Studio จากนั้นเพียงลบไฟล์บันทึกหรือเปลี่ยนชื่อและลบในภายหลัง
กลับมาที่ Management Studio แนบฐานข้อมูลอีกครั้ง ในหน้าต่างแนบลบไฟล์บันทึกจากรายการไฟล์
DB แนบและสร้างไฟล์บันทึกว่างใหม่ หลังจากตรวจสอบทุกอย่างเรียบร้อยคุณสามารถลบไฟล์บันทึกที่เปลี่ยนชื่อ
คุณอาจไม่ควรใช้สิ่งนี้กับฐานข้อมูลการผลิต