Как восстановить данные из двоичного журнала

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
Ронак Вьяс
источник