Использование mariadb-binlog
Начиная с MariaDB 10.4.6, mariadb-binlog является символической ссылкой на mysqlbinlog.
Начиная с MariaDB 10.5.2, mariadb-binlog — это имя инструмента, а mysqlbinlog — символическая ссылка.
Двоичный журнал сервера MariaDB — это набор файлов, содержащих «события», которые представляют изменения в содержимом базы данных MariaDB. Эти события записываются в двоичном (т. е. нечитабельном для человека) формате. Утилита mariadb-binlog используется для просмотра этих событий в текстовом формате.
Запустите mariadb-binlog из командной строки следующим образом:
shell> mariadb-binlog [options] log_file ...
Подробную информацию об доступных параметрах см. в разделе Параметры mariadb-binlog.
В качестве примера, вот как можно отобразить содержимое файла двоичного журнала с именем "mariadb-bin.000152":
shell> mariadb-binlog mariadb-bin.000152
Если используется протоколирование на основе инструкций (по умолчанию), вывод включает SQL-инструкцию, идентификатор сервера, на котором была выполнена инструкция, метку времени и время выполнения инструкции. Если используется протоколирование на основе строк, вывод события не будет содержать SQL-инструкцию, а вместо этого отобразит, как изменялись отдельные строки.
Вывод mariadb-binlog может быть использован как вход для клиента mariadb для повторного выполнения инструкций, содержащихся в двоичном журнале. Это полезно для восстановления после сбоя сервера. Вот пример:
shell> mariadb-binlog binlog-filenames | mysql -u root -p
Если вы хотите просмотреть и, возможно, отредактировать файл перед применением его к базе данных, используйте флаг '-r' для перенаправления вывода в файл:
shell> mariadb-binlog -r filename binlog-filenames
Затем вы можете открыть файл, просмотреть его и удалить любые инструкции, которые не хотите выполнять (например, случайное DROP DATABASE). После того, как вы будете удовлетворены содержимым, вы можете выполнить его с помощью:
shell> mariadb -u root -p < filename
Будьте осторожны при обработке нескольких файлов журнала в одном соединении, особенно если в одном или нескольких из них есть инструкции CREATE TEMPORARY TABLE .... Временные таблицы удаляются при завершении работы клиента mariadb, поэтому если вы обрабатываете несколько файлов журнала по одному (т.е. по одному соединению), и один файл журнала создаёт временную таблицу, а последующий файл журнала ссылается на таблицу, вы получите ошибку «неизвестная таблица».
Чтобы выполнить несколько файлов журнала с помощью одного соединения, перечислите их все в командной строке mariadb-binlog:
shell> mariadb-binlog mariadb-bin.000001 mariadb-bin.000002 | mariadb -u root -p
Если вам нужно вручную отредактировать двоичные логи перед выполнением, объедините их все в один файл перед обработкой. Вот пример:
shell> mariadb-binlog mariadb-bin.000001 > /tmp/mariadb-bin.sql shell> mariadb-binlog mariadb-bin.000002 >> /tmp/mariadb-bin.sql shell> # make any edits shell> mysql -u root -p -e "source /tmp/mariadb-bin.sql"
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/using-mariadb-binlog/