หลายๆพอใช้ Database ไป ผ่านไปนานเข้า ระบบฟ้องว่า Disk เต็ม พอเข้าไปดูอ้าวไฟล์ Log (.ldf) มันโตกว่าไฟล์ Database (.mdf) เสียอีก คราวนี้มาลองดูสาเหตุกัน
สาเหตุที่เป็นไปได้
- เลือก Recovery Model ที่ไม่เหมาะสม
- ไม่มีการจัดเก็บ Backup Log ออกมา พอไปตั้งให้ Log มัน Auto Grow แล้วมันเลยบวมครับ
พอรู้สาเหตุแล้ว มาดูวิธีแก้บ้าง
- ปรับเปลี่ยนเลือก Recovery Mode ที่ใช้ครับ โดยลองพิจารณ์ Recovery Model จาก Blog ผม หรือจะถาม Google ก็ได้ครับ เมื่อได้ Recovery Model ที่ใช่แล้ว มาดูวิธีขั้นตอนการปรับแก้ครับ
- เข้าไปที่ SQL Server Management Studio (SSMS) อย่างน้อยเป็น Windows Authentication หรือใช้ User ที่มีสิทธินการจัดการ DB ครับ
- ในหน้าจอ Object Explorer browse เลือก Database
- คลิกขวาที่ Database ที่เลือก >> Properties >> Options
- หาในส่วนของ Recovery Model เลือกให้เหมาะสมกับการใช้งาน
- กด OK
- ลดขนาดของ Database Log File (.ldf)
- Shrink Database ตามวิธีการ
- เข้าไปที่ SQL Server Management Studio (SSMS)
- ในหน้าจอ Object Explorer browse เลือก Database
- คลิกขวาที่ Database ที่เลือก Tasks >> Shrink >> Files
- ดู File Type = Log
- Shrink action ดูว่่าให้ DB มัน คืนพื้นที่ที่ไม่ได้ใช้ (Release unused space)
- กด OK
- Detach/Attach (ควรทำ Full Bacckup ก่อนนะ)
- เข้าไปที่ SQL Server Management Studio (SSMS)
- ในหน้าจอ Object Explorer browse เลือก Database
- คลิกขวาที่ Database ที่เลือก Tasks >> Detach
- ถ้ายังมี Application หรือ User ใช้งาน Database ก้อนนี้ออยู่ มันมีหน้าจอให้เตะ (Drop Connection) ครับ
- ลบ หรือ เปลี่ยนชื่อ ไฟล์ .ldf เป็นชื่ออื่น
- Attach Database (.mdf) กลับเข้าไปใหม่ โดยคลิกขวาที่ Database ที่เลือก Tasks >> Attach
- Manual Log Backup
- เข้าไปที่ SQL Server Management Studio (SSMS)
- ในหน้าจอ Object Explorer browse เลือก Database
- คลิกขวาที่ Database ที่เลือก Tasks >> Backup หน้าจอ Backup แสดงขึ้นมา
- ตรวจสอบชื่อ Database (จะเปลี่ยนเป็นก้อนอื่นก็ได้นะ)
- ตรวจสอบ Recovery model
- Backup type เลือก Transaction Log ส่วนของ Option มีหลายแบบครับ เช่น Full(ทั้งหมด), Difference(เอาเฉพาะส่วนที่เปลี่ยนแปลง) เป็นต้น
- จากนั้นเป็นการใส่ข้อมูลทั้งไป เช่น พวกชื่อ Backup / คำอธิบาย และมีการ Config ด้าน Security
- เลือก Destination
- รอ Vertify
- จากนั้นกำหนด Config ของ Transaction Log ว่าให้ตัด Truncate Log หลัง Backup ไหม
- มีหน้าจอถามไปอีก จากนั้นรอครับ
- Shrink Database ตามวิธีการ
ในทีสุดเขียน Blog ที่ดองมา 3 ปีเสร็จ ช่วงนี้ยังมีเวลาว่างๆ ผมพยายามเก็บ Blog เก่าๆที่เขียนค้างไว้ หรือเขียน Blog ใหม่ไปเรื่อยๆ ครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.