Back

การเรียกคืนข้อมูล กรณีย้ายตาราง และข้อมูลด้วยโปรแกรม Navicat แต่เลือกข้อมูลผิดส่งผลให้ข้อมูลระบบจริงสูญหาย

 

๑. ภาระงานที่รับผิดชอบ

          พัฒนาระบบสารสนเทศให้หน่วยงานในสังกัดมหาวิทยาลัยบูรพา และหน่วยงานภายนอกมหาวิทยาลัย โดยมีรายละเอียดเกี่ยวกับหน้าที่รับผิดชอบ ดังนี้ สำรวจความต้องการชองผู้ใช้บริการ เขียนรายละเอียดการจัดทำโครงการ และแผนการดำเนินงาน วิเคราะห์ ออกแบบระบบและฐานข้อมูล พัฒนา ทดสอบและแก้ไขโปรแกรม จัดทำคู่มือ และให้การฝึกอบรมที่พัฒนา ติดตามและประเมินผลการใช้งานระบบสารสนเทศจากผู้ใช้งาน เพื่อนำมาปรับปรุงแก้ไขระบบได้ดีขึ้น อีกทั้งให้คำแนะนำการใช้งาน คำปรึกษาแก่ผู้ใช้งาน ควบคุม ดูแล ปรับปรุงระบบงานให้สามารถใช้งานได้อย่างต่อเนื่องและมีประสิทธิภาพ และปฏิบัติงานอื่นตามที่ได้รับมอบหมาย

          สำนักคอมพิวเตอร์ ส่วนงานที่มีภารกิจหลักในการสนับสนุนการใช้งานเทคโนโลยีสารสนเทศของมหาวิทยาลัย เพื่อให้การใช้งานระบบสารสนเทศสามารถใช้งานได้อย่างตอบโจทย์ผู้ใช้งาน การปรับปรุงแก้ไขโปรแกรม และตารางการจัดเก็บข้อมูลจึงเป็นงานอีกส่วนหนึ่งที่ผู้พัฒนาระบบต้องดำเนินการอยู่บ่อยครั้ง โดยการพัฒนาระบบสารสนเทศนั้นมีการแยกกันระหว่างเครื่องที่เปิดให้ผู้ใช้งานนั้นได้ใช้งานจริง (Production) กับเครื่องที่ใช้ในการพัฒนาหรือแก้ไขสำหรับผู้พัฒนาระบบ (Develop)

          เมื่อผู้พัฒนาระบบดำเนินการพัฒนาหรือแก้ไขโปรแกรมที่เครื่อง Develop เสร็จแล้ว ขั้นตอนต่อมาคือการอัปเดต ฐานข้อมูล และโค้ดโปรแกรมบนเครื่องที่ใช้งานจริง (Production) ซึ่งในขั้นตอนนี้เอง หากผู้พัฒนาระบบเลือกคำสั่งการอัปเดตตารางในฐานข้อมูลผิด อาจส่งผลให้ข้อมูลในฐานข้อมูลที่ใช้งานอยู่โดนข้อมูลจากเครื่องพัฒนาบันทึกลงไป จนทำให้ข้อมูลจริงนั้นสูญหายไปได้ ดังนั้นเพื่อให้ผู้พัฒนาระบบท่านอื่นรับรู้ถึงวิธีการแก้ไขปัญหาดังกล่าว ผู้เขียนจึงได้เขียนแนวทางการแก้ไขปัญหา

๒. การเรียนรู้ ความคาดหวัง ของ “ลูกค้า/ผู้ที่เกี่ยวข้องกับกระบวนการที่นำเสนอ”

          ๒.๑ ผู้พัฒนาระบบทราบแนวทางการเรียกคืนข้อมูลที่สูญหาย

๓. วัตถุประสงค์

          ๓.๑ เพื่อให้ผู้พัฒนาระบบ สามารถรับรู้ขั้นตอนการเรียกคืนข้อมูลที่สูญหาย

๔. บทสรุปองค์ความรู้

๔.๑ ปัญหาที่พบ

          ผู้เขียนพัฒนาโปรแกรมด้วย Azure DevOps และต้องการอัปเดตตารางจัดเก็บข้อมูลจากเครื่อง Develop ไปสู่ Production ด้วยโปรแกรมจัดการฐานข้อมูล Navicat โดยใช้ฟังก์ชั่น Data Transfer ซึ่งสาเหตุของปัญหาคือ ผู้เขียนเลือก Database Object ผิด จากที่ต้องการนำเข้าแค่ตารางที่สร้างขึ้นมาใหม่ กลับกลายเป็นนำทุกตารางจากเครื่อง Develop มายัง Production ส่งผลให้ข้อมูลเครื่อง Production โดนบันทึกทับของเดิม และข้อมูลที่ใช้งานจริงสูญหาย

 

๔.๒ ขั้นตอนการแก้ไข

          ๔.๒.๑. ติดต่อ ผู้ดูแล Azure DevOps ของฝ่ายโครงสร้างพื้นฐานระบบ แจ้งปัญหา และให้รายละเอียด เช่น ชื่อระบบ วันเวลาที่เกิดปัญหา โดยผู้ดูแล Azure DevOps จะดำเนินการดึงข้อมูลสำรอง ที่ถูก backup ล่าสุดมาให้ในรูปแบบของไฟล์คำสั่ง Sql

          ๔.๒.๒. ติดต่อเจ้าของระบบ แจ้งปัญหา และขอหยุดการใช้งานระบบชั่วคราว

          ๔.๒.๓. นำไฟล์คำสั่ง Sql มารันบนโปรแกรม Navicat

          ๔.๒.๔. เมื่อรันไฟล์คำสั่ง Sql เสร็จ ให้ตรวจสอบข้อมูลว่าข้อมูลแถวสุดท้ายถูกอัปเดตเมื่อวัน เวลาที่เท่าไร และแจ้งเจ้าของระบบรับทราบ และดำเนินการประกาศแจ้งผู้ใช้งานให้ตรวจสอบข้อมูล

๔.๓ ข้อสังเกต

          ผู้ดูแล Azure DevOps จะดำเนินการสำรองข้อมูลในเวลาเที่ยงคืนของทุกวัน ดังนั้นไฟล์ Sql ที่ได้มานั้นมีความเป็นไปได้ที่จะไม่ได้ข้อมูลทั้งหมด โดยข้อมูลหลังจากเที่ยงคืน จนถึงเวลาที่เกิดปัญหาจะไม่ถูกสำรองเอาไว้

๔.๔ ข้อแนะนำ

          เมื่อผู้พัฒนาระบบต้องการอัปเดตฐานข้อมูลเครื่อง Production ให้ใช้วิธีเปิดโปรแกรม Navicat เลือกฐานข้อมูลเครื่อง Develop คลิกขวาตารางที่ต้องอัปเดตไปยังเครื่อง Production เลือก Dump SQL File และเลือกว่าต้องการอัปเดตตารางพร้อมข้อมูล หรือตารางอย่างเดียว

โปรแกรม Navicat จะสร้างไฟล์ SQL ให้ผู้พัฒนาระบบเปิดไฟล์ คัดลอกคำสั่ง และนำคำสั่งไปรันบนเครื่อง Production

ด้วยวิธีการนี้ จะสามารถลดข้อผิดพลาดจากการย้ายตาราง และฐานข้อมูลลงได้

๕. ประโยชน์ที่ได้รับ

          ๕.๑ ให้ผู้พัฒนาระบบ สามารถรับรู้ขั้นตอนการเรียกคืนข้อมูลที่สูญหาย