Category DB2

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

IBM DB2

สำหรับ 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 ดีไหม ?…

[DB2] ตรวจสอบไฟล์ backup ด้วย db2ckbkp

IBM DB2

พอดีได้เจอเคสของลูกค้าว่า Database ไม่สามารถ Restore ได้ เพราะลองเข้าใช้งาน Application แล้วไม่เจอตัว Database ครับ สิ่งที่ต้องเป็นอย่างแรก ตรวจสอบไฟล์ Backup ก่อนครับ ว่าครบถ้วนสมบูรณ์ หรือไม่ครับ โดยตัว DB2 มีคำสั่งเตรียมมาให้อยู่แล้วครับ db2ckbkp พระเอกของเรา ตัว db2ckbkp ทำหน้าที่ตามชื่อครับ db2 check backup ครับ โดยมีรูปแบบการใช้คร่าว ดังนี้ จากคำสั่งข้างต้น มาลองดูรายละเอยีดเบื้องต้นกันครับ คำสั่ง db2ckbkp ใช้งานได้ทุก user ครับ แต่ต้องกำหนด Initialize db2…

[DB2] QUIESCE คือ อะไร

black and gray mining rig

สำหรับการ QUIESCE การให้อธิบายมันเป็นการปิดระบบ เพื่อให้ Admin เข้ามาบำรุงรักษาครับ โดยอาจจะเป็นการติดตั้ง Application หรือ Backup Database เป็นต้นครับ DB2 QUIESCE ใช้ได้ทั้งกับ Database และ Instance ครับ โดยเป็ยการบังคับ User ที่ไม่ใช่ Admin ออกไปจากระบบครับ หลังบำรุงรักษาระบบเสร็จ เปิดให้ User เข้าใช้งานได้ ด้วยคำสั่ง db2 unquiesce database ตัวอย่างการใช้งาน โดยเป็น Script Backup Database ครับ ที่ใช้คำสั่ง quiesce…

[AIX] เพิ่มพื้นที่ Disk บน AIX

AIX

Blog อันนี้ ผม Re-Write จาก Note ที่เคยทำไปเมื่อปีก่อนครับ อาจจะไม่อัพเดตล่าสุดครับ ทำไมถึงต้องขยายพื้นที่ Disk เพิ่ม ปัญหา ลูกค้าต้องการเพิ่ม Database อีก 2 ก้อน เพื่อทดสอบระบบงานครับ ทำให้ Disk เดิมที่ Allocate ไว้ 60GB อาจจะไม่เพียงพอครับ แนวทางการแก้ไข เพิ่ม Disk ขึ้นมาเป็น 100 GB ครับ (ที่มาของ 100 GB เพราะคำนวณ Max Growth ของ Database…

[DB2] ทำไมตอนลง DBMS DB2 และ ตอนสร้าง DB ใหม่ต้องย้อนเวลาด้วย ?

IBM DB2

หลายคนอาจจะสงสัย เฮ้ยยยยนี่มันปิด 2021 แล้วนะ ทำไมต้องทำแบบนั้นกันด้วยครับ มันมีเหตุผลครับ DB2 แอบทำอะไร ? DB2 ตอนติดตั้ง หรือ Bind พวก Package ต่างๆ เช่น Package db2look ตัว DB2 มันเก็บวันและเวลา (Timestamp) ไว้ด้วยครับ DB2 เวลาสร้างทุกอย่าง เช่น Table / Function มันใส่ Timestamp ไว้ เพื่อตรวจสอบความถูกต้องของฐานข้อมูลครับ ยกตัวอย่าง เช่น ถ้าผมลอง SELECT จาก SYSCAT.FUNCTIONS…

[DB2] เมื่อ DateTimeOffSet ของ C# ไม่สามารถจัดเก็บตรงๆได้ใน DB2

IBM DB2

พอดีได้เข้ามาชวยแก้ปัญหาของน้องในทีมครับ เนื่องจากไปเจอว่า Library ที่ตั้ง Schedule ของ C# มันต้องการ Parameter ที่เป็น DateTimeOffSet แต่ DataType นี้ มีนดันใช้งานได้กับ MS SQL Server เท่านั้นครับ กลับมาดูที่ DateTimeOffSet ดีกว่า มันเก็บอะไรบ้าง โดยแบ่งได้ 2 ส่วนครับ DateTime พวก วันที่ และเวลา หรือ ถ้ามองโดยทั่วไป คือ TIMESTAMP ครับ OffSet พวก TimeZone บอกโซนเวลา เช่น…

[DB2] Restrictive Database ทำให้เกิด Error CLI0125E Function sequence error. SQLSTATE=S1010

IBM DB2

เนื่องจากทีมที่ได้เข้ามาทำ Hardening ทีมก่อนหน้าได้เปิด Option การสร้าง Database แบบ Restrictive ครับ ทำให้ Application เดี้ยงกับเป็นแถบครับ ก่อนทีจะแก้ปัญหาเราต้องมารู้จักกันก่อนครับ ว่าเจ้า Restrictive มัน คือ อะไร Restrictive Database Database ที่มีการจำกัดสิทธิของ Publish ออกหมดเลยครับ หากสงสัยอะไร สามารถอ่าน Blog ของผมเพิ่มเติมได้เลยครับ มาดูปัญหาของฝั่ง Application ดีกว่าครับ Application เป็นโปรแกรมที่เก่าอยู่พอสมควรครับ ใช้ ADODB เป็นเทคโนโลยีในการเชื่อมต่อ (VB6 + RecordSet) ครับ…

[DB2] Restrictive Database

IBM DB2

หลายคนอาจจะสงสัยว่า Restrictive Database ตัว Option นี้มันมาทำให้ชีวิตเราสบายขึ้น หรือ แย่ลงกันนะ มาลองดูที่ผมอธิบายครับ ปกติแล้วตัว DB2 เวลาสร้าง Database ขึ้นมา มันจะสร้าง Public เข้ามาด้วยครับ ซึ่งจะมีสิทธิต่างๆ ให้มาโดย Default ครับ ตัว DB2 เองพวก User ที่เข้าจัดการ Database ตัว DB2 มันไม่ได้จัดการนะครับ งานในส่วนนี้เป็นหน้าที่ของ OS ที่ติดตั้ง DB2 ครับ อย่างพวก AIX Linux Windows ดังนั้นถ้ามี…

[DB2] คืนพื้นที่ให้กับเครื่อง

ขอคืนพื้นที่ เนื่องจาก Disk ไม่เพียงพอครับ สำหรับใครที่ลองทำที่เครื่อง Develop พบปัญหานี้กันบ่อยๆครับ ตัวฐานข้อมูลเหมือนกับครับ สำหรับ DB2 ที่ลึกๆแล้วเป็นการเก็บข้อมูลในรูปแบบ File ที่เรียกว่า Table Space ครับ ซึ่งเมื่อเราทำอะไรเยอะๆ เข้า Insert เยอะๆ ตัวพื้นที่ถูกจองไปเรื่อยๆครับ แต่ถ้าลบข้อมูลออกมันไม่คืนพื้นที่นะครับ ถ้าจะบังคับให้คืนต้องไปเคลียร์ตัว Table Space ครับ ขั้นตอนการขอคืนพื้นที่ db2 alter tablespace <<ชื่อ Table Space>> reduce max; db2 alter tablespace USERSPACE1 reduce…

[DB2] รูปแบบการเขียนวันที่ เวลาใน Query

IBM DB2

ผมจดไว้กันลืมมากกว่านะครับ ว่ารูปแบบการเขียนวันที่ เวลาใน Query สำหรับใช้ในการ SELECT หรือ WHERE ต้องทำอย่างไรบ้างนะครับ กรณีวันที่ รูปแบบ yyyy-MM-dd ตัวอย่าง 2018-04-10 ตัวอย่างตอนใช้กับ Query กรณีวันที่ + เวลา รูปแบบ yyyy-MM-dd HH:mm:ss ตัวอย่าง 2018-04-10 09:45:45 ตัวอย่างตอนใช้กับ Query กรณีวันที่ + เวลา + เสี่้ยววินาที รูปแบบ yyyy-MM-dd HH:mm:ss.000000 ตัวอย่าง 2018-04-10 09:45:45.000000 ตัวอย่างตอนใช้กับ Query