[MySQL Tip] วิธีลบ binary log หรือ mysql-bin.xx ของ MySQL
กรณีที่ท่านใช้ MySQL และได้เปิดโหมดการทำงานของ binary log
– Binary log คือการเปิดโหมด log ของการทำงาน คำสั่งต่างๆ ที่ MySQL เก็บไว้ให้เรา เผื่อเวลาตารางมีปัญหา หรือ ต้องการทำระบบ Replicate จำเป็นต้องใช้งานไฟล์นี้ ในการกู้ข้อมูลคืน เทียบข้อมูลระหว่าง เครื่อง Master กับเครื่อง Slave โดยไฟล์ binary log จะเก็บไว้ที่ /var/lib/mysql ตัวอย่างไฟล์ จะขึ้นต้นด้วย
– mysql-bin.000001
ตัว 000001 จะรันเลขไปเรื่อยๆ เป็นต้น
– หากมีการเปิดใช้งาน binary log จะเป็นการสำเนาข้อมูล และเกิดไฟล์ log ขึ้นเรื่อยๆ ทำให้เสียเนื้อที่บางส่วนไป และถ้าไม่มีการกำหนดวันเวลา ในการ expire ของ binary log ก็จะทำให้มีโอกาศเกิดปัญหาเรื่องเนื้อที่ไม่พอใช้งาน เพราะถ้าหากเกิดปัญหา binary log ใช้เนื้อที่เก็บมากๆ อาจจะทำให้ hard disk เต็มได้ และต้องการลบไฟล์ออกไปบางส่วน เพื่อให้เนื้อที่พอใช้งาน จำเป็นต้องรันคำสั่งบน MySQL ลบ เท่านั้น ไม่สามารถ ลบจากคำสั่งจาก Linux ได้เหมือนการลบไฟล์ทั่วไป ๆ ได้ ดังนั้นควรกำหนดเวลา expire ให้ดีและจำกัด การใช้งานด้วย
– คำสั่งตรวจสอบแสดงข้อมูล binary log
show binary logs;
– ต่อมาตรวจสอบ ด้วยคำสั่ง แสดงวันหมดอายุ expire_logs
show variables like ‘expire_logs%’;
– แสดงว่าไม่มีการกำหนด วันหมดอายุของไฟล์ binary log
– สามารถกำหนดวัน expire_logs_days = xxx ได้ คำสั่งคือ
– ต่อมา ถ้ากำหนดวันหมดอายุ expire แล้ว เราสามารถสั่งคำสั่ง flush log เพื่อลบ binary log ที่มีอายุเกินกว่าที่กำหนด ก็ลบทิ้งได้
– ก็เป็นอันเสร็จ
– ต่อมา ถ้าจะกำหนดในไฟล์ my.cnf ก็กำหนดได้ เพิ่ม expire_logs_days=xxx ได้เลยหลัง [mysqld] นะครับ
– หรือจะสั่งคำสั่งลบไฟล์ตรงๆ ก็ได้ แต่สั่งได้ทีละ 1 คำสั่งนะครับ เช่น
– คำสั่งลบ binary log ของไฟล์ mysql-bin.000124
– ก็จะได้เนื้อที่คืนมาได้พอสมควร
– ก็ลองเอาทดสอบใช้งานดูนะครับ คิดว่าน่าจะช่วยท่านได้ เพราะ admin จำเป็นต้องเป็นคนจัดการ โดยหน้าที่รับผิดชอบ นะครับ admin อย่างเราๆ ก็ต้องศึกษาเพิ่มเติมนะครับ
– ขอบคุณที่ติดตาม แล้วพบกันใหม่ครับ