วันเสาร์ที่ 27 เมษายน พ.ศ. 2556

_ALLOW_RESETLOGS_CORRUPTION คืออะไร?

ผมได้อ่านบทความ Opening the Door without the Keys ผมคิดว่าเป็นบนความที่น่าสนใจ และให้ไอเดียพอสมควร อย่างไรก็ตาม ผมจะกล่าวคร่่าวๆ เกี่ยวกับ "_ALLOW_RESETLOGS_CORRUPTION" พารามิเตอร์ (Undocument)

เมื่อเรา startup database ไม่ว่าจะเป็น RESETLOGS หรือ  NORESETLOGS  ขั้นตอนของ checkpoint จะต้องทำการเช็ค header ไฟล์ทั้งหมด ของ data files เพื่อให้แน่ใจว่าทุกๆ ไฟล์นั้นตรงกัน หรือสอดคล้องกัน (consistency) แต่หากเราเซต _ALLOW_RESETLOGS_CORRUPTION (TRUE) - สิ่งที่เกิดขึ้นคือ Header ของไฟล์จะไม่ถูกเช็คเมื่อเรา start database
มันนำมาซึ่งข้อมูลหาย และมีผลต่อความสมบูรณ์ของข้อมูล

ข้อดี - ในบางเหตุการณ์ เราสามารถ start database ถึงแม้ว่าbackup ที่มีนั้นไม่สมบูรณ์

ข้อเสีย - อย่างที่ทราบกันดีว่า ฐานข้อมูลจะไม่อยู่ในสภาพที่สอดคล้องกัน (inconsistency) เมื่อใช้พารามิเตอร์นี้ (เราอาจต้อง Export -> Create new database -> Import)

ไม่มีความคิดเห็น: