Jak przywrócić dane z dziennika binarnego

11

Jak mogę przywrócić moje pliki i zdjęcia z plików binarnych?

Anto
źródło

Odpowiedzi:

7

Czy wiesz, z których plików binlog należy przywrócić i ile jest plików binlog?

Za pomocą mysqlbinlognarzędzia możemy przeglądać zawartość pliku binlog.

Jeśli jest to pojedynczy plik, który można odzyskać za pomocą:

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

Jeśli jest to wiele plików, wystarczy wyodrębnić całą zawartość do jednego pliku .sql i bezpośrednio go przywrócić:

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

Aby dołączyć drugą zawartość binlog do pliku allbinlof.sql, użyj poniższej komendy:

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

Możesz także wykluczyć niektóre instrukcje, używając opcji mysqlbinlog. Wypróbuj to poniżej dla opcji:

mysqlbinlog --help
Vinay
źródło
4

Wykonaj poniższe kroki, aby przywrócić dane z dzienników binarnych lub skorzystaj z tego łącza, aby zrozumieć proces przywracania: MySQL Binary Log Restoration

Najpierw przywróć bazę danych z najnowszej kopii zapasowej

mysql -u username -ppassword database_name < dump.sql

Następnie wykonaj jedną z następujących czynności:

  • Przywróć resztę danych z dziennika binarnego.

    Jeśli masz więcej niż jeden dziennik binarny do wykonania na serwerze MySQL, bezpieczną metodą jest przetworzenie ich wszystkich za pomocą jednego połączenia z serwerem.

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

    lub:

    mysqlbinlog mysql_bin.000001 mysql_bin.000002 | mysql -u root -ppassword database_name
  • Przywróć dane na podstawie czasu

    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
  • Przywróć dane na podstawie pozycji

    mysqlbinlog --start-position=368315 \
                --stop-position=368312 mysql_bin.000001 \
                | mysql -u root -ppassword database_name
Saharsh Shah
źródło
2
Pierwszy przykład przywracania więcej niż jednego dziennika binarnego jest szczególnie niebezpieczny, jak zauważono w dokumentacji.
Reuben,
2

Można użyć -v opcję, aby plik .sql w czytelny format.

Na przykład

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

mysqlbinlog -v /var/lib/mysql-bin.000016 >> /logs/allbinlog.sql
Ronak Vyas
źródło