Cách khôi phục dữ liệu từ nhật ký nhị phân


11

Làm cách nào tôi có thể khôi phục các tệp và ảnh của mình từ các tệp nhị phân?

Câu trả lời:


7

Bạn có biết những tập tin binlog nào bạn cần khôi phục và có bao nhiêu tập tin binlog không?

Sử dụng mysqlbinlogtiện ích chúng ta có thể xem nội dung tệp binlog.

Nếu đó là một tệp duy nhất bạn có thể khôi phục bằng cách sử dụng:

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

Nếu đó là nhiều tệp thì chỉ cần trích xuất tất cả nội dung thành một tệp .sql và trực tiếp khôi phục nó:

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

Để nối thêm nội dung binlog thứ hai vào tệp allbinlof.sql, hãy sử dụng lệnh bên dưới:

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

Bạn cũng có thể loại trừ các câu lệnh nhất định bằng cách sử dụng tùy chọn của mysqlbinlog. Hãy thử điều này dưới đây để lựa chọn:

mysqlbinlog --help

4

Sử dụng các bước dưới đây để khôi phục dữ liệu từ nhật ký nhị phân hoặc sử dụng liên kết này để hiểu quy trình khôi phục: Khôi phục nhật ký nhị phân MySQL

Đầu tiên, khôi phục cơ sở dữ liệu từ bản sao lưu mới nhất

mysql -u username -ppassword database_name < dump.sql

Sau đó, làm một trong hai:

  • Khôi phục phần còn lại của dữ liệu từ nhật ký nhị phân.

    Nếu bạn có nhiều nhật ký nhị phân để thực thi trên máy chủ MySQL, phương pháp an toàn là xử lý tất cả chúng bằng một kết nối duy nhất đến máy chủ.

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

    hoặc là:

    mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
  • Khôi phục dữ liệu trên cơ sở thời gian

    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
  • Khôi phục dữ liệu trên cơ sở vị trí

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

2
Ví dụ đầu tiên về việc khôi phục nhiều hơn một nhật ký nhị phân là không an toàn, như đã lưu ý trong tài liệu.
Reuben

2

Bạn có thể sử dụng tùy chọn -v để tạo tệp .sql ở định dạng READABLE .

Ví dụ

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

mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.