ฮาร์ดดิสก์เต็ม เซิร์ฟเวอร์ไม่ทำงานเมื่อโปรแกรมฐานข้อมูล MySql เมื่อไฟล์ ibdata1 มีขนาดใหญ่มากเกินไป ข้อมูลในโปรแกรมฐานข้อมูลจะถูกจัดเก็บเป็นไฟล์ขนาดใหญ่มากถึง 100GBytes ส่งผลทำให้เซิร์ฟเวอร์ไม่สามารถทำงานได้ การที่จะจัดการไฟล์ ibdata1 ได้นั้นมีอยู่วิธีเดียวต้องลบข้อมูลออก แต่กลายเป็นว่าทำให้ข้อมูลต้องเสียหายไปด้วย วันนี้จะมาพูดถึงวิธีแก้ไขไฟล์ ibdata1 ที่มีขนาดใหญ่มากเกินไป โดยให้แบ่งเป็นไฟล์ตารางฐานข้อมูลขนาดเล็ก ๆ หลาย ๆ ไฟล์ประกอบกันเแทน มันจะทำให้สามารถแก้ไขหรือวิเคราะห์ว่าทำไมตารางนี้ถึงมีขนาดใหญ่กว่าตารางอื่น ๆ นั่นเอง
ขั้นตอนที่ 1 ให้ทำการสำรองข้อมูลโดยใช้โปรแกรม mysqldump ก่อนคำสั่งที่ใช้ก็คือ
mysqldump -u user -p databasename > databasename.sql
ขั้นตอนที่ 2 เมื่อดำเนินการในขั้นตอนแรกเรียบร้อยแล้ว ให้ลบฐานข้อมูลออก(drop databasename)
ขั้นตอนที่ 3 ให้ทำงานหยุดการทำงานของโปรแกรม MySql
ขั้นตอนที่ 4 ให้ลบไฟล์ ibdata1, ib_logfile0 และ ib_logfile1 ออก
ขั้นตอนที่ 5 ให้เข้าไปแก้ไขไฟล์คอนฟิกของโปรแกรม MySql โดยให้เพิ่มบรรทัดนี้เข้าไป innodb_file_per_table หรือเป็นการกำหนดให้โปรแกรม MySql สร้างไฟล์ของแต่ละตารางขึ้นมา
ขั้นตอนที่ 6 เริ่มการทำงานใหม่ของโปรแกรม MySql
ขั้นตอนที่ 7 จากนั้นสร้างฐานข้อมูลใหม่ และอิมพอร์ตข้อมูลที่สำรองไว้ในขั้นตอนที่ 1 กลับมา เป็นอันจบขั้นตอนทั้งหมด
สรุปขั้นตอนทั้งหมดต้องทำอย่างใจเย็น ๆ อย่าให้พลาดแม้แต่ในขั้นตอนใด ๆ เพราะว่าหากเป็นระบบที่มีลูกค้าใช้งานอยู่อย่างต่อเนื่องด้วยแล้ว การปิดระบบเพียงแค่ 3-5 ชั่วโมงย่อมส่งผลกระทบต่อการให้บริการของเราอย่างแน่นอน นอกจากเรื่องราวเกี่ยวกับการทำงานบนระบบเซิร์ฟเวอร์เล็ก ๆ ที่ผู้เขียนดูแลอยู่แล้วยังมีเวบไซต์ระบบ GPS TRACKER 3G ของผู้เขียนเปิดใหม่ด้วย กำลังสนุกสนานกับการปรับแต่งให้เหมาะสมกับการใช้งาน ฝากประชาสัมพันธ์มาณ โอกาสนี้ด้วย
ไม่มีความคิดเห็น:
แสดงความคิดเห็น