PURGE BINARY LOGS
คำสั่งลบไฟล์ทั้งหมดเข้าสู่ระบบไบนารีระบุไว้ในแฟ้มดัชนีเข้าสู่ระบบก่อนที่จะมีชื่อไฟล์ที่ระบุไว้เข้าสู่ระบบหรือการประทับเวลา ไฟล์บันทึกที่ถูกลบจะถูกลบออกจากรายการที่บันทึกไว้ในไฟล์ดัชนีเพื่อให้ไฟล์บันทึกที่กำหนดกลายเป็นไฟล์แรกในรายการ
ฉันหวังว่าคุณจะลบบันทึกการทำงานแบบทวิภาคไปจนถึงการmysql-bin.000019
ใช้คำสั่ง
PURGE BINARY LOGS TO 'mysql-bin.000019';
หากคุณต้องการล้างบันทึกทั้งหมดทำเช่นนั้น
PURGE BINARY LOGS TO 'mysql-bin.000025';
mysql-bin.000025
นี้จะลบบันทึกไบนารีเกิน
UPDATE
คุณสามารถลอง
RESET MASTER;
RESET MASTER
ลบไฟล์บันทึกไบนารีทั้งหมดที่ระบุไว้ในไฟล์ดัชนีรีเซ็ตไฟล์ดัชนีบันทึกไบนารีให้ว่างเปล่าและสร้างไฟล์บันทึกไบนารีใหม่
ผลของความRESET MASTER
แตกต่างจาก PURGE BINARY LOGS ใน 2 วิธีหลัก:
RESET MASTER
ลบไฟล์บันทึกไบนารีทั้งหมดที่ระบุไว้ในไฟล์ดัชนีโดยปล่อยให้ไฟล์บันทึกไบนารีไฟล์เดียวที่ว่างเปล่าที่มีส่วนต่อท้ายเป็นตัวเลขเท่ากับ. 000001 ในขณะที่ตัวเลขจะไม่ถูกรีเซ็ตด้วย PURGE BINARY LOGS
RESET MASTER
ไม่ได้ตั้งใจจะใช้ในขณะที่ทาสการจำลองกำลังทำงานอยู่ พฤติกรรมของRESET MASTER
เมื่อใช้ในขณะที่ทาสกำลังทำงานไม่ได้กำหนด (และไม่ได้รับการสนับสนุน) ในขณะที่PURGE BINARY LOGS
อาจถูกนำมาใช้อย่างปลอดภัยในขณะที่ทาสการจำลองกำลังทำงาน
CAVEAT โดย RolandoMySQLDBA
หากคุณรันRESET MASTER
ด้วยการเชื่อมต่อกับ Slaves และการทำงาน IO Thread ของแต่ละ Slave จะหายไปทันที การจำลองจึงใช้งานไม่ได้และคุณจะต้องใช้เวลาในการรับข้อมูลจาก Slaves ทั้งหมดที่ซิงค์อีกครั้ง หากคุณต้องการลบบันทึกไบนารีอย่างปลอดภัยจากอาจารย์โดยไม่ทำลายความสมบูรณ์ของการจำลองแบบนี่คือสิ่งที่คุณทำ:
- ทำงาน
SHOW SLAVE STATUS\G
ในแต่ละทาส
Relay_Master_Log_File
จด นี่คือบันทึกไบนารีซึ่งมีคำสั่งล่าสุดดำเนินการสำเร็จใน Slave)
- จากการแสดงทั้งหมด
SHOW SLAVE STATUS\G
ให้กำหนดว่าอันRelay_Master_Log_File
ใดที่เก่าที่สุด (ตัวอย่างเช่น 'mysql-bin.00123')
- คุณสามารถเรียกใช้
PURGE BINARY LOGS TO 'mysql-bin.00123';
ไม่มีทาสจะเสียสถานที่
ผลกระทบโดยรวม? สิ่งนี้จะทิ้งไว้ข้างหลังล็อกไบนารีบนมาสเตอร์ที่มีคำสั่งที่ยังไม่ถูกเรียกใช้บนทาสทั้งหมดในตอนนี้