ฉันจะคืนค่าไฟล์และภาพถ่ายจากไฟล์ไบนารีได้อย่างไร?
ฉันจะคืนค่าไฟล์และภาพถ่ายจากไฟล์ไบนารีได้อย่างไร?
คำตอบ:
คุณรู้หรือไม่ว่าไฟล์ 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
ใช้ขั้นตอนด้านล่างเพื่อกู้คืนข้อมูลจากบันทึกไบนารีหรือใช้ลิงค์นี้เพื่อทำความเข้าใจกระบวนการฟื้นฟู: 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
คุณสามารถใช้ตัวเลือก-vเพื่อสร้างไฟล์. sql ในรูปแบบที่อ่านได้
ตัวอย่างเช่น
mysqlbinlog -v /var/lib/mysql-bin.000016 > /logs/allbinlog.sql
mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql