วิธีการคืนค่าข้อมูลจากบันทึกไบนารี


11

ฉันจะคืนค่าไฟล์และภาพถ่ายจากไฟล์ไบนารีได้อย่างไร?

คำตอบ:


7

คุณรู้หรือไม่ว่าไฟล์ binlog ใดที่คุณต้องการกู้คืนและมีไฟล์ binlog กี่ไฟล์?

การใช้mysqlbinlogยูทิลิตี้เราสามารถดูเนื้อหาไฟล์ binlog

หากเป็นไฟล์เดียวคุณสามารถกู้คืนโดยใช้:

mysqlbinlog /var/lib/mysql-bin.000016 | mysql uroot pReset123

หากเป็นหลายไฟล์ให้แยกเนื้อหาทั้งหมดเป็นไฟล์. sql หนึ่งไฟล์และกู้คืนโดยตรง:

mysqlbinlog /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

หากต้องการผนวกเนื้อหา binlog ที่สองเข้ากับไฟล์ allbinlof.sql ให้ใช้คำสั่งด้านล่าง:

mysqlbinlog /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql

นอกจากนี้คุณยังสามารถยกเว้นคำสั่งบางอย่างโดยใช้ตัวเลือกของ mysqlbinlog ลองตัวเลือกด้านล่างนี้:

mysqlbinlog --help

4

ใช้ขั้นตอนด้านล่างเพื่อกู้คืนข้อมูลจากบันทึกไบนารีหรือใช้ลิงค์นี้เพื่อทำความเข้าใจกระบวนการฟื้นฟู: MySQL Binary Log Restoration

ก่อนอื่นให้คืนค่าฐานข้อมูลจากข้อมูลสำรองล่าสุด

mysql -u username -ppassword database_name < dump.sql

จากนั้นทำอย่างใดอย่างหนึ่ง:

  • กู้คืนข้อมูลที่เหลือจากบันทึกไบนารี

    หากคุณมีบันทึกไบนารีมากกว่าหนึ่งที่จะดำเนินการบนเซิร์ฟเวอร์ MySQL วิธีที่ปลอดภัยคือการประมวลผลพวกเขาทั้งหมดโดยใช้การเชื่อมต่อไปยังเซิร์ฟเวอร์เดียว

    mysqlbinlog mysql_bin.000001 | mysql -u root -ppassword database_name
    mysqlbinlog mysql_bin.000002 | mysql -u root -ppassword database_name

    หรือ:

    mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
  • กู้คืนข้อมูลตามเวลา

    mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
                --stop-datetime="2005-04-20 9:59:59" mysql_bin.000001 \
                | mysql -u root -ppassword database_name
  • กู้คืนข้อมูลตามตำแหน่ง

    mysqlbinlog --start-position=368315 \
                --stop-position=368312 mysql_bin.000001 \
                | mysql -u root -ppassword database_name

2
ตัวอย่างแรกของการกู้คืนไบนารีมากกว่าหนึ่งรายการนั้นไม่ปลอดภัยโดยเฉพาะตามที่ระบุไว้ในเอกสารประกอบ
รูเบน

2

คุณสามารถใช้ตัวเลือก-vเพื่อสร้างไฟล์. sql ในรูปแบบที่อ่านได้

ตัวอย่างเช่น

mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql

mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.