[DB2] ข้อควรระวัง DB2_STANDBY_ISO=UR

สำหรับ DB2 มัน Feature HADR สำหรับช่วย Replicate Log จากเครื่องหลัก(Primary) ไปยังเครื่องสำรองอื่นๆ (Standby) ที่นี้ข้อจำกัดของ DB2 ในส่วน Standby

  • ปกติมีหน้าที่รอรับ Log จากเครื่อง Primary อย่างเดียวครับ
  • แล้วที่นี้ DB2 ตั้งแต่ 9.7 มันยอมให้อ่านจาก Database ที่เป็น Standby ได้ โดยการเปิด Feature DB2_STANDBY_ISO โดยมีข้อจำกัดอ่านได้แบบ Uncommitted Read (UR) เท่านั้น

DB2_STANDBY_ISO ดีไหม ?

  • มุมที่ดี สำหรับแบ่ง Load ระบบครับ ให้ตัว Primary Database ถูก Write เพียงอย่างเดียว และไป Read เพื่อออก Report / ทำ Cube / ทำ Dashboard จากตัว Standby ครับ
  • แต่มัน ฝันร้าย สำหรับคนทำ Application เลยครับ เพราะ อะไร ?
    • ออกแบบให้มันรองรับการอ่านแบบ Uncommitted Read (UR) เท่านั้น !!!!
    • ถ้าพลาด Application ฝั่ง Standby ทำงานผิดพลาด เช่น Read แบบ Cursor stability (CS) หรือ Insert ลงไป HADR หลุดเลยครับ
  • Note
    • Blog นี้ลองกับ DB2 10.5 และ 11.5 เท่านั้น เวอร์ชันอื่นๆ อาจจะสามารถทำได้แล้วครับ
    • ที่เขียน Blog นี้ เพราะ System Implementer บางทีไม่ได้บอกเรา ลงๆทำ Script แล้วก็จากไปครับ T__T
    • สำหรับใครที่อยากรู้เรื่อง ISOLATION LEVEL สามารถอ่านเพิ่มเติมได้ใน Blog [DB2] WORKING WITH ISOLATION LEVEL

Reference


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.